Gitリポジトリのマスターに対して古いブランチを更新する


123

古いブランチになったGitリポジトリ(ローカルおよびリモート)があります。このブランチをマスターブランチで最新の状態にしたいのですが、方法はわかりません。また、おそらく多くのマージ競合が発生します。

この古いブランチをマスターブランチと同じ状態にするには、どうすればよいですか?


1
ローカルブランチに変更を加えていない場合に、Gitリポジトリ内のマスターに対して古いブランチを更新する方法を見つけるためにここに来た場合は、単に「git pull」を実行します
粗末な

回答:


152

関係なく行う必要があるマスターブランチを更新します。

次に、次のいずれか:

  1. マスターブランチに対して古いブランチをリベースします。リベース中にマージの競合を解決すると、マスターに対してきれいにマージされる最新のブランチになります。

  2. ブランチをマスターにマージし、マージの競合を解決します。

  3. マスターをブランチにマージし、マージの競合を解決します。次に、ブランチからマスターにマージすることはクリーンでなければなりません。

これらのどれもが他より優れているわけではなく、異なるトレードオフパターンを持っているだけです。

私の意見では、リベースのアプローチを使用します。これにより、後の読者に全体的な結果がより明確になりますが、それは個人的な好み以外にはありません。

ブランチをリベースして保持するには、次のようにします。

git checkout <branch> && git rebase <target>

あなたのケースでは、古いブランチをチェックしてから、

git rebase master 

それをマスターに対して再構築します。


1
@Andrew:git rebase:)
CharlesB 2012年

1
git checkout $branch && git rebase $target-あなたの場合、古いブランチをチェックアウトしてから、それgit rebase masterをマスターに対して再構築してください。
Daniel Pittman、2012年

3
あなたのリポジトリは公開されていますか?公開されている場合、リベースしても大丈夫ですか?
event_jr

4
リモートブランチでリベースを使用する場合の良いアドバイス:このリモートブランチでコミットをプッシュしていない場合にのみ、このリモートブランチをマスターブランチに対してリベースしてください。
Dherik、2015年

リベースが完了したら、-fオプションを使用して変更をプッシュする必要があります。履歴を書き換える際には、強力なプッシュが必要です。
Opster Elasticsearch Ninja 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.