私はGitが初めてで、現在この状況にあります:
- 4 つのブランチ (マスター、b1、b2、および b3) があります。
- b1-b3 に取り組んだ後、他のすべてのブランチにあるはずのブランチ マスターを変更する必要があることに気付きました。
- 必要なものを変更しました
master
...ここに私の問題があります:
master
他のすべてのブランチをブランチ コードで更新するにはどうすればよいですか?
私はGitが初めてで、現在この状況にあります:
master
...ここに私の問題があります:master
他のすべてのブランチをブランチ コードで更新するにはどうすればよいですか?
次の 2 つのオプションがあります。
1 つ目はマージですが、これによりマージ用の追加のコミットが作成されます。
各ブランチをチェックアウトします。
git checkout b1
次にマージします。
git merge origin/master
次にプッシュします:
git push origin b1
または、リベースを実行できます。
git fetch
git rebase origin/master
git rebase master
これを行う適切な方法です。マージは、マージのためにコミットが作成されることを意味しますが、リベースはそうではありません。
@cmaster は、最も精巧な回答を作成しました。簡単に言えば:
git checkout master #
git pull # update local master from remote master
git checkout <your_branch>
git merge master # solve merge conflicts if you have`
将来の参照のために実際の状態で保存する代わりに、ブランチ履歴を書き直すべきではありません。マスターへのマージ中に、追加のコミットが 1 つ作成されますが、それは安価です。コミットに費用はかかりません。
git cherry-pickを使用して、ブランチ間でマージしたり、個々のコミットを適用したりできます。
最後のコミットに戻り、ログ履歴も削除したい場合
以下のコマンドを使用すると、commitID SHA - 71e2e57458bde883a37b332035f784c6653ec509を持つ前のコミットに移動したいとします。このコミットを指定すると、このコミット後にログ メッセージは表示されず、その後すべての履歴が消去されます。
git push origin +71e2e57458bde883a37b332035f784c6653ec509^:master