Git łączy dwie lokalne gałęzie


146

Mam gałąź Master, gałąź A i gałąź B. Teraz pracuję w gałęzi A i muszę połączyć gałąź A z gałęzią B i kontynuować pracę w gałęzi A. Wszystkie pliki są zatwierdzane w gałęzi A i B.

Jak szybko to wdrożyć?

Odpowiedzi:


247

Jeśli zrozumiałem pytanie, chcesz połączyć branchBsię branchA. Aby to zrobić, najpierw przejdź do kasy, branchAjak poniżej,

git checkout branchA

Następnie wykonaj poniższe polecenie, aby scalić branchBsię z branchA:

git merge branchB

3
Musimy się upewnić, że gałęzie A i B istnieją w lokalnym repozytorium. Dopiero wtedy możemy wykonać scalenie.
Santhosh

8
Pytanie jest wyraźne:I have branch Master, branch A and branch B.
LeeGee

166

Oto jasny obraz:

Zakładając, że mamy gałąź-A i gałąź-B

Chcemy połączyć gałąź-B w gałąź-A

on branch-B -> A: switch to branch-A

on branch-A: git merge branch-B

32
to wcale nie jest jaśniejsze, po prostu opublikuj wejście terminala, które jest o wiele łatwiejsze do zrozumienia
lopu

9
To nie jest wystarczająco jasna odpowiedź… co to znaczy „zaktualizuj gałąź-B”… jest na to wiele sposobów, który z nich? ... zamiast przełączać git checkout branch-A jest bardziej zrozumiały
Erdinç Çorbacı

2

Odpowiedź Abiramana była całkowicie poprawna. Jednak nowicjusze mogą zapomnieć o ściągnięciu repozytorium. Ilekroć chcesz dokonać scalenia z branchB na branchA. Pierwsza płatność i pobranie z branchB (upewnij się, że twój oddział jest zaktualizowany o zdalny oddział)

git checkout branchB
git pull

Teraz twój lokalny oddziałB jest aktualizowany przez zdalny oddziałB Teraz możesz płacić do oddziału A.

git checkout branchA

Teraz jesteś w branchA, możesz połączyć się z branchB używając następującego polecenia

git merge branchB

0

Jeśli ty lub inny programista nie będziecie dalej pracować nad branchB, myślę, że lepiej jest zachować zatwierdzenia, aby móc dokonywać zwrotów bez bólu głowy. Więc ;

git checkout branchA
git pull --rebase branchB

Ważne jest, aby nie używać już branchB.

Więcej; https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


1
W tytule pytanie dotyczy lokalnych repozytoriów - dla których pullnie będzie działać.
LeeGee

2
Masz rację, po prostu pomyślałem, że dodanie tej wiedzy byłoby plusem, ponieważ prawdopodobnie lokalny oddział zostanie na końcu zepchnięty. Ale przegapiłem punkt, który wskazałeś, lepiej dodam to jako komentarz, a nie jako odpowiedź. Dzięki za ostrzeżenie.
Erdinç Çorbacı

0

na gałęzi B zrób, $git checkout branchAaby przełączyć się na gałąź A

na gałęzi $git merge branchB

To wszystko, czego potrzebujesz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.