Mam repozytorium Git z wieloma gałęziami, niektóre już scalone, a niektóre nie. Ponieważ liczba oddziałów jest dość duża, jak mogę ustalić, które oddziały nie zostały jeszcze połączone? Chciałbym uniknąć konieczności łączenia „ośmiornicy” i ponownego łączenia oddziałów, które już zostały połączone.
git
git-merge
branching-and-merging
fluca1978
źródło
źródło
Odpowiedzi:
Spróbuj tego:
Robi to, co mówi na puszce (wyświetla listę gałęzi, które zostały połączone
master
). Możesz również podciągnąć odwrotność za pomocą:Jeśli nie określisz
master
, np.wtedy pokażą ci gałęzie, które zostały scalone z bieżącym
HEAD
(więc jeśli jesteś włączonymaster
, jest to równoważne z pierwszym poleceniem; jeśli jesteś włączonyfoo
, to jest równoważne zgit branch --merged foo
).Możesz także porównać odgałęzienia, określając
-r
flagę i odwołanie do sprawdzenia, które mogą być lokalne lub zdalne:źródło
foo
sięmaster
, pojawi się nagit branch --merged master
liście. Ale co się stanie, jeśli jeszcze raz się zobowiązujeszfoo
? Czy nie pojawia się już na tej liście, czy też, mimo że ma nowe zatwierdzenia, w pewnym momencie został scalonymaster
?--merged
wyświetla tylko te gałęzie, które są całkowicie scalone z danym oddziałem.gitk --remotes --not origin/master
pokaże zatwierdzenia w każdym oddziale, które nie zostały połączone w master.Możesz również użyć parametru -r, aby wyświetlić zdalne gałęzie, które nie zostały scalone w master:
źródło
-a
aby zobaczyć jednocześnie zdalne i lokalne w tym samym czasieJeśli gałąź jest już scalona, ponowne scalenie nic nie da. Nie musisz się więc martwić o „ponowne łączenie” już połączonych gałęzi.
Aby odpowiedzieć na twoje pytanie, możesz po prostu wydać
aby zobaczyć połączone oddziały lub
aby zobaczyć nie połączone gałęzie. Twoja obecna gałąź jest domyślna, ale możesz określić inne gałęzie, jeśli chcesz.
pokaże Ci gałęzie, które nie zostały jeszcze połączone w
integration
gałąź.źródło
Poniższy skrypt znajdzie wszystkie
origin/*
gałęzie, które wyprzedzają bieżącą gałąźAktualna wersja skryptu
źródło
źródło