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ć?

user3127896
źródło

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
Abimaran Kugathasan
źródło
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
Mahmoud Zalt
źródło
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

źródło
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/

Erdinç Çorbacı
źródło
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.

Dapo Momodu
źródło