В ветвях нет "родительских" веток в git.Или, что то же самое, git не отслеживает, из какой ветви была «создана» другая ветка.(На самом деле, ветвь вообще не должна «создаваться» из другой ветви.)
Единственный способ, которым связаны ветви - это то, сколько истории они разделяют.Иногда вы можете сделать вывод о более структурированном понимании ветвей репо, но обычно это требует определенных знаний о намерениях команды.Например, если вы знаете, что команда использует стратегию ветвления gitflow, вы можете сделать вывод, что ветки feature
обычно считаются с одной веткой development
в качестве их родителей, и что у нее master
в качестве родителя.Но это только то, как люди думают о ветвях;git не знает и не заботится.
Вы можете получить визуализацию ветвей с помощью git log --graph
или таких инструментов пользовательского интерфейса, как gitk
(для этого я довольно часто использую gitk --all
цель).Но имейте в виду, что в этих инструментах, какая ветвь рисуется «в сторону», в основном произвольно.Если вы видите график типа
A -- B -- C <--(branch1)
\
D -- E <--(branch2)
, вы можете сделать вывод, что branch2
был создан из branch1
;но что касается git, то разумно предположить, что branch1
был создан из branch2
;все, что мы действительно знаем, это то, что они имеют общую историю (от B
).
(Если ветви были объединены вместе, объединение предлагает некоторый намек на то, какая ветвь может быть родительской, но это все еще неокончательно, так как некоторые стратегии включают в себя слияния от «родительской» ветви к долгоживущей «дочерней» ветви, а также окончательные слияния от «дочерних» ветвей обратно к «родительскому».)
Итак ...На вопрос, который вы задаете, ответа просто нет.Возможно, вам придется вернуться к тому, чего вы пытаетесь достичь, зная это, и подумать о другом способе достижения этого.