Jak mogę na bieżąco aktualizować moją gałąź z Master w git?

126

Mam poprawkę w moim pliku głównym i chcę również, aby moja gałąź otrzymała tę poprawkę. Jakiego gitpolecenia używam?

Nic Hubbard
źródło

Odpowiedzi:

172

Zakładając, że wszystko jest w porządku, biorąc wszystkie zmiany do wzorca, chcesz:

git checkout <my branch>

aby przełączyć drzewo robocze na twoją gałąź; następnie:

git merge master

aby połączyć wszystkie zmiany w master z twoją.

John Doty
źródło
5
A to po prostu dodaje zmiany z mojego pana do mojej gałęzi i pozostawia mistrza w spokoju, prawda?
Nic Hubbard
3
@Nic - to przyniesie wszystkie zatwierdzenia z mastera, a nie tylko poprawkę błędu. Upewnij się, że to jest to, co chcesz zrobić.
manojlds
12
@Nic - dobrze, to nie modyfikuje mastera.
John Doty
16
Dobrze byłoby polecić początkowy „git checkout master; git pull”, aby upewnić się, że lokalna gałąź główna jest aktualna. Zwykle oczywiste, ale ...
MikeW
Jako główny skrót do kasy / scalania, czy możesz po prostu wykonać „git pull origin master”, aby pobrać serwer główny / scalić go do lokalnej wyewidencjonowanej gałęzi?
user1172173
66

Jeśli twoja gałąź jest tylko lokalna i nie została wypchnięta na serwer, użyj

git rebase master

W przeciwnym razie użyj

git merge master
Chetan
źródło
18
Ponieważ modyfikuje historię zatwierdzeń i nie chcesz wypychać zmodyfikowanej historii wyszukiwania na serwer.
Chetan
1
Jeśli używasz repozytorium svn jako repozytorium zdalnego - przez git svn- wtedy git rebase masterjest to droga do zachowania liniowej historii, co jest tym, co rozumie svn.
alondono
15

Możesz użyć najlepszego wyboru, aby uzyskać konkretne poprawki błędów

$ git checkout branch
$ git cherry-pick bugfix
manojlds
źródło
czy najlepszy wybór będzie działał tylko wtedy, gdy bugfix była gałęzią, która została ponownie scalona w master?
Prasith Govin
1
Możesz wybrać opcję „cherry-pick”, ale wtedy po scaleniu brancha z master (gdy gałąź jest gotowa) będziesz miał w historii zatwierdzenie poprawiające błędy dwukrotnie.
Gauthier
0

Jeśli chcesz tylko, aby poprawka została zintegrowana z gałęzią, git cherry-pickodpowiednie zmiany.

Alan Haggai Alavi
źródło