Próbuję, proszę, skomentuj, ponieważ nie jestem całkowicie pewien, ale uważam, że spełnia swoją funkcję.
Poniższe zadziała tylko wtedy, gdy gałęzie nadal wskazują na końcówce przed połączyły się pana, który jest w przypadku, gdy oddziały były na tym samym repo:
o [master]
|
o merged branch "great-feature" into master
|\
| o A [great-feature]
| |
o | B
| |
Jeśli to nie przypadku (na przykład, jeśli wyciągnąłeś z innego repozytorium), możesz je odtworzyć ręcznie.
najpierw uzyskać oddziały gdzie popełnić to:
$ git branch -a --contains=<sha-of-B>
*master
great-feature
następnie dla każdej gałęzi uzyskać liczbę zatwierdzeń, które oddzielają ich głowy do zatwierdzenia: jest to liczba wierszy dziennika wyjście git na określony zakres:
$ git log --pretty=oneline <sha-of-B>..great-feature | wc -l
1
$ git log --pretty=oneline <sha-of-B>..master | wc -l
4
Zatem B jest najbliżej wspaniałej cechy, co oznacza, że zostało w niej utworzone.
To może być wykonane w ładnym skryptu, nie krępuj się, aby dodać go do odpowiedzi (nie jestem w tym dobry)
Ściśle mówiąc, tylko niemożliwe, jeśli połączenie jest szybko przekazywane. Jeśli wszystkie scalenia są wykonywane z '--no-ff', to git zachowuje również historię gałęzi. Po prostu wykonaj 'git log - graph $ commit_id .. HEAD' – slebetman
Ogólnie rzecz biorąc, w Git, zatwierdzenia nie znajdują się w oddziałach, gałęzie są zatwierdzane. –