Wie kann ich meine Filiale mit Master with Git auf dem neuesten Stand halten?

126

Ich habe eine Fehlerbehebung in meinem Master, und ich möchte auch, dass mein Zweig diese Fehlerbehebung erhält. Welchen gitBefehl verwende ich?

Nic Hubbard
quelle

Antworten:

172

Angenommen, Sie können alle Änderungen im Master übernehmen, möchten Sie Folgendes:

git checkout <my branch>

um den Arbeitsbaum auf Ihren Zweig umzustellen; dann:

git merge master

um alle Änderungen im Master mit Ihren zu verschmelzen.

John Doty
quelle
5
Und das fügt nur die Änderungen von meinem Master in meinen Zweig ein und lässt den Master in Ruhe, richtig?
Nic Hubbard
3
@Nic - Dies bringt alle Commits vom Master ein, nicht nur die Fehlerbehebung. Stellen Sie sicher, dass Sie dies tun möchten.
Manojlds
12
@Nic - Richtig, dies ändert den Master nicht.
John Doty
16
Es könnte sinnvoll sein, einen ersten "git checkout master; git pull" zu empfehlen, um sicherzustellen, dass der lokale Master-Zweig auf dem neuesten Stand ist. Normalerweise offensichtlich, aber ...
MikeW
Können Sie als Verknüpfung für das Auschecken / Zusammenführen von Mastern einfach einen "Git-Pull-Ursprungs-Master" ausführen, um den Server-Master / Zusammenführen in den lokalen ausgecheckten Zweig zu ziehen?
user1172173
66

Wenn Ihre Niederlassung nur lokal ist und nicht auf den Server übertragen wurde, verwenden Sie

git rebase master

Andernfalls verwenden Sie

git merge master
Chetan
quelle
18
Weil es den Festschreibungsverlauf ändert und Sie den geänderten Suchverlauf nicht auf den Server übertragen möchten.
Chetan
1
Wenn Sie ein SVN-Repository als Remote-Repository verwenden - über git svn-, git rebase masterist dies der richtige Weg, um einen linearen Verlauf zu führen, wie es SVN versteht.
Alondono
15

Sie können den Cherry-Pick verwenden, um die bestimmten Bugfix-Commits zu erhalten.

$ git checkout branch
$ git cherry-pick bugfix
Manojlds
quelle
Funktioniert der Cherry-Pick nur, wenn Bugfix ein Zweig war, der wieder in Master zusammengeführt wurde?
Prasith Govin
1
Sie können Cherry-Pick auswählen, aber nach dem Zusammenführen des Zweigs mit dem Master (wenn der Zweig fertig ist) wird das Fehlerbehebungs-Commit zweimal im Verlauf ausgeführt.
Gauthier
0

Wenn Sie nur möchten, dass die Fehlerbehebung in den Zweig integriert wird, git cherry-pickdie entsprechenden Commits.

Alan Haggai Alavi
quelle