Aktualisieren Sie einen veralteten Zweig gegen Master in einem Git-Repo

123

Ich habe ein Git-Repository mit einem Zweig (lokal und remote), der veraltet ist. Ich möchte diesen Zweig mit dem Hauptzweig auf den neuesten Stand bringen, weiß aber nicht, wie ich das machen soll. Es wird wahrscheinlich auch viele Zusammenführungskonflikte geben.

Wie kann ich diesen veralteten Zweig in den gleichen Zustand wie den Hauptzweig bringen oder aktualisieren?

Andrew
quelle
1
Wenn Sie hierher gekommen sind, um herauszufinden, wie Sie einen veralteten Zweig gegen Master in einem Git-Repo aktualisieren können, wenn Sie keine Änderungen im lokalen Zweig vorgenommen haben, dann machen Sie einfach einen "Git Pull"
schäbig

Antworten:

152

Aktualisieren Sie den Hauptzweig, was Sie unabhängig davon tun müssen.

Dann einer von:

  1. Setzen Sie den alten Zweig gegen den Hauptzweig um. Lösen Sie die Zusammenführungskonflikte während der erneuten Basis. Das Ergebnis ist ein aktueller Zweig, der sauber mit dem Master zusammengeführt wird.

  2. Führen Sie Ihren Zweig zum Master zusammen und lösen Sie die Zusammenführungskonflikte.

  3. Führen Sie den Master in Ihrem Zweig zusammen und lösen Sie die Zusammenführungskonflikte. Dann sollte das Zusammenführen von Ihrem Zweig zum Master sauber sein.

Keines davon ist besser als das andere, sie haben nur unterschiedliche Kompromissmuster.

Ich würde den Rebase-Ansatz verwenden, der meiner Meinung nach späteren Lesern sauberere Gesamtergebnisse liefert, aber das ist nichts anderes als der persönliche Geschmack.

Um den Zweig neu zu gründen und zu behalten, würden Sie:

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

Schauen Sie sich in Ihrem Fall den alten Zweig an

git rebase master 

um es gegen den Meister wieder aufzubauen.

Daniel Pittman
quelle
1
@ Andrew: git rebase:)
CharlesB
1
git checkout $branch && git rebase $target- In Ihrem Fall überprüfen Sie den alten Zweig, git rebase masterum ihn gegen den Master wieder aufzubauen.
Daniel Pittman
3
Ist dein Repo öffentlich? Ist es in Ordnung, neu zu gründen, wenn es öffentlich ist?
event_jr
4
Guter Rat bei der Verwendung von Rebase in Remote-Zweigen: Führen Sie diese Remote-Zweig-Rebase nur für Master-Zweige durch, wenn niemand Commits für diesen Remote-Zweig drückt.
Dherik
Sobald die Rebase abgeschlossen ist, müssen Sie die Änderungen mit der -fOption verschieben. Während Sie den Verlauf neu schreiben, ist ein starker Druck erforderlich.
Opster Elasticsearch Ninja