893

私はGitが初めてで、現在この状況にあります:

  • 4 つのブランチ (マスター、b1、b2、および b3) があります。
  • b1-b3 に取り組んだ後、他のすべてのブランチにあるはずのブランチ マスターを変更する必要があることに気付きました。
  • 必要なものを変更しましたmaster...ここに私の問題があります:

master他のすべてのブランチをブランチ コードで更新するにはどうすればよいですか?

4

11 に答える 11

845

次の 2 つのオプションがあります。

1 つ目はマージですが、これによりマージ用の追加のコミットが作成されます。

各ブランチをチェックアウトします。

git checkout b1

次にマージします。

git merge origin/master

次にプッシュします:

git push origin b1

または、リベースを実行できます。

git fetch
git rebase origin/master
于 2010-10-06T21:21:02.023 に答える
260

git rebase masterこれを行う適切な方法です。マージは、マージのためにコミットが作成されることを意味しますが、リベースはそうではありません。

于 2012-04-20T06:03:38.397 に答える
28

@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 つ作成されますが、それは安価です。コミットに費用はかかりません。

于 2017-01-18T10:08:05.247 に答える
11

git cherry-pickを使用して、ブランチ間でマージしたり、個々のコミットを適用したりできます。

于 2010-10-06T21:27:18.490 に答える
1

最後のコミットに戻り、ログ履歴も削除したい場合

以下のコマンドを使用すると、commitID SHA - 71e2e57458bde883a37b332035f784c6653ec509を持つ前のコミットに移動したいとします。このコミットを指定すると、このコミット後にログ メッセージは表示されず、その後すべての履歴が消去されます。

git push origin +71e2e57458bde883a37b332035f784c6653ec509^:master
于 2021-11-25T11:28:39.830 に答える