Как посмотреть информацию о филиале? - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть несколько ветвей.Ветвь A, B, C ..... J .Я просто хочу знать, как эти ветви возникли?
Например,Я хочу знать, из какой ветви Филиал C был создан в терминал ?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

В ветвях нет "родительских" веток в 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).

(Если ветви были объединены вместе, объединение предлагает некоторый намек на то, какая ветвь может быть родительской, но это все еще неокончательно, так как некоторые стратегии включают в себя слияния от «родительской» ветви к долгоживущей «дочерней» ветви, а также окончательные слияния от «дочерних» ветвей обратно к «родительскому».)

Итак ...На вопрос, который вы задаете, ответа просто нет.Возможно, вам придется вернуться к тому, чего вы пытаетесь достичь, зная это, и подумать о другом способе достижения этого.

0 голосов
/ 17 февраля 2019

(альтернативная формулировка вопроса после уточнения в комментариях)

Как узнать, какая ветвь является "родителем" ветки, ветка которой была создана из ?

Скажем так, вопрос загружен недоразумением относительно веток в git.Ветвь может быть создана, чтобы указывать на любой коммит, является ли этот коммит действительно доступным из любой ветки.Когда вы делаете следующее:

git checkout master
git checkout -b new_branch

... вы создаете новую ветвь с <refspec>, который здесь явно не указан, поэтому предполагается, что он равен HEAD, с разрешением в master, сам по себеразрешено для конкретного коммита.Так что master и new_branch не не имеют какие-либо особые или значимые отношения в этой ситуации.

...