Как получить название конкретной ветки, в которой создается тег в GIT - PullRequest
2 голосов
/ 09 февраля 2012

Я знаю, что команда git "git branch --contains" может показать, на каких ветвях можно найти тег.Но вывод включает в себя все дочерние / дочерние ветви.Например:

master ----------------------------
          |    \
        tag_X   \
                 \
                  ------------------ branch_A
                    |      \
                   tag_Y    \
                             \
                              --------------- branch_B

Когда мы запустим "git branch --contains tag_X", мы получим

branch_A
branch_B
master

, хотя tag_X был создан на master, а не branch_A и branch_B

Есть ли какая-нибудь команда в git, чтобы показать только определенную ветку, в которой тег был изначально создан, исключая все дочерние / подветви?Если его нет, есть идеи, как его получить (проанализировано по журналу, статусу и т. Д.)?Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

Как вы это попробовали

git branch --contains <commit>

Не уверен, работает ли он с именем тега, вам может потребоваться сделать git show, чтобы получить связанный хэш

взято из Как вывести список ветвей, содержащих данный коммит?

0 голосов
/ 09 февраля 2012

Git не хранит это. Тег - это просто имя, указывающее на коммит. Если вы заглянете в .git / refs / tags, вы увидите текстовый файл, содержащий ссылку на коммит для каждого тега.

Поскольку несколько ветвей могут совместно использовать один и тот же коммит, тег может принадлежать нескольким веткам. Также нет способа получить это из журналов, потому что единственное, что сохраняется, - это соответствующий коммит.

...