Git: pobieranie zmian z innej gałęzi

82

Mam projekt korzystający z git i chciałbym rozpocząć nową gałąź, aby dodać dużą nową funkcję.

W maingałęzi będę nadal dodawać poprawki błędów i drobne funkcje. Chciałbym w regularnych odstępach czasu przenosić zmiany z gałęzi głównej do gałęzi „nowa główna funkcja”. Jak najlepiej to zrobić?

Ostatecznie połączę gałąź „główna nowa funkcja” z gałęzią główną.

FunLovinCoder
źródło

Odpowiedzi:

57

git checkout featurebranch && git merge master

Możesz to zrobić tyle razy, ile chcesz; nie wpłynie to na master i będziesz mógł łatwo zrobić to na odwrót, gdy tylko dowiesz się, że skończyłeś z gałęzią funkcji.

David Winslow
źródło
29
git rebase mastermoże być bardziej pożądane niż w git merge mastercelu uproszczenia późniejszej integracji z powrotem do gałęzi głównej.
Amber
114
git checkout featurebranch && git rebase master

Dopóki jeszcze nie pchnąłeś, lepiej jest powtórzyć zmiany na górze master.

Widzieć:

VonC
źródło
1
Czy możesz uzyskać nowsze zmiany za pomocą git rebase, czy tylko dzięki git merge?
keflavich
@keflavich, ponieważ zmieniasz bazę featurebranchna mistrza, otrzymujesz wszystkie najnowsze commity od master. Scalanie byłoby podobne, ale spowoduje nieco bardziej złożoną integrację z masterpóźniejszymi zmianami.
VonC
2
Hej! Jestem git newb, więc czy możesz przejść do bardziej szczegółowych informacji na temat as long as you haven't pushed yet?Mam gałąź funkcji, którą umieściłem w zdalnym repozytorium w celu wykonania kopii zapasowej. Czy mogę kontynuować git rebase master, a następnie zatwierdzić i przesłać trochę pracy do mojej gałęzi funkcji git rebase master? Muszę również scalić inne gałęzie funkcji w moją gałąź!
Brad Parks,
@GringoSuave Tak, jeśli nie jesteś jedyną osobą pracującą nad tą gałęzią funkcji. Ogólnie rzecz biorąc, przebuduj tylko to, czego jeszcze nie pchnąłeś (chyba, że ​​jesteś jedynym, który nad tym pracuje)
VonC