git pushを使用してローカルブランチを作成せずにリモートブランチを動的に生成します。

git pushを使用してローカルブランチを作成せずにリモートブランチを動的に生成します。

だからこれが私が達成したいものです:

Githubでリポジトリを複製し、いくつかの安定ブランチをチェックアウトし、そこでローカル変更を適用するときにローカル機能ブランチを作成したくないので、チェックアウトしたローカル安定ブランチに変更を保持したくありません。

機能ブランチがリモートで作成され、ローカル安定ブランチがきれいに保たれるように変更し、リモートリポジトリにプッシュしたいと思います。

ローカルブランチを作成し、新しい変更をローカルに維持せずにこれを行うにはどうすればよいですか?

ベストアンサー1

遠隔安定点の確認

git fetch <remote> <branch>

今ローカルストレージに読み取り専用リモート追跡ブランチのコピー、今すぐ読み取り専用トレースブランチをチェックアウトします。

git checkout origin/<branch_name>

VCS(何を使用しても)は、次のメッセージを表示し始めます。

  • HEAD is in a detached state
  • Previous HEAD position was c293198

のように、現在のブランチはハッシュフラグメントのように動作しますa697b40
すべての分離されたHEADは新しいコミットを作成し、それを離れると(他の項目をチェックして)、その新しいコミットを参照できなくなります。

リモート追跡ブランチから新しい「機能」ブランチをチェックアウトして作成します。

git checkout -b "feature_branch_intended_for_remote"

この時点で、すべてのコミットはこの新しいブランチに追加されます。このブランチの記録はもともと安定したブランチです。
つまり、リモートで信頼性の高いデータ(変更できない)を取得し、信頼性の高いアップストリームローカル作業コピーを作成しません。誤って再びアップストリームにプッシュすることがあります。
今できます

  • この新しいブランチに作業をコミット
  • 新しいブランチに戻って原点にプッシュ
git push [--set-upstream | --track | -u] <remote> <feature_branch_intended_for_remote>

おすすめ記事