Biorąc pod uwagę, że Git używa skierowanego acyklicznego wykresu i zazwyczaj repo ma tylko jeden root, wszystkie twoje gałęzie wskazują na jeden wstępny commit. Więc to, czego naprawdę chcesz, to oddział, który dzieli największą część swojej historii z twoim oddziałem.
Nie można po prostu odszukać gałęzi, której HEAD zawiera się w historii bieżącej gałęzi, ponieważ oddział HEAD najprawdopodobniej od tego czasu się poruszył.
Więc polecam użyć git merge-base
, który znajdzie się najnowszy wspólny przodek (aka widelec punkt) dwóch oddziałów lub dopuszcza:
$ git merge-base feature develop
12345abc
$ git merge-base feature release
98765fed
Wyjście to będzie dwie rewizje, które pojawiają się w historii obu gałęzi, odpowiednio. Jednym z dwóch, będą zawarte w obu oddziałów, dzięki czemu można karmić je do merge-base
ponownie, aby uzyskać popełnić chcesz (lub raczej ten, który nie chce):
git merge-base 12345abc 98765fed
98765fed
Tak w naszym przykładzie feature
pochodzi z develop
, ponieważ dwa mają udział w zatwierdzeniu, którego nie ma release
.
Pamiętaj, że zadziała to tylko wtedy, gdy nie wykonasz scalania krzyżowego między funkcjami i nie rozwiniesz.
Nie jestem pewien, czy pytania są takie same, ale możesz uzyskać odpowiedzi tutaj http://stackoverflow.com/questions/3161204/find-the-parent-branch-of-a-git-branch –
@ Md.KhairulHasan Pytanie jest w rzeczywistości to samo, co od razu połączyłeś się bezpośrednio z tym pytaniem :) – DAXaholic