Git:как узнать, на какой ветке есть тег?

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

Как узнать, на какой ветке тег?

5 ответов


еще короче:

git branch --contains tags/<tag>

(он работает для любой ссылки на дерево)


если вы можете найти который фиксирует тег относится к:

 git rev-parse --verify tags/<tag>^{commit}
 # or, shorter:
 git rev-parse tags/<tag>~0

вы можете найти какая ветвь содержит эту фиксацию.

git branch --contains <commit>

As прокомментировал ниже user3356885, для извлеченных ветвей (ветвей в пространстве имен remotes)

git branch -a --contains tags/<tag>
git branch -a --contains <commit>

Если "git branch -- contains" ничего не делает, убедитесь, что вы включаете все ветви, как удаленные, так и локальные ветви:

git branch -a --contains <tag>

из справки git:

конкретные действия git-ветви: - a, --все перечисляют как удаленное отслеживание, так и локальные ветви


git branch --contains tag

ничего не делает для меня, но я нашел свое решение этой проблемы в git графический интерфейс.

начать так:

git gui

(на моем Ubuntu мне пришлось сначала установить его с sudo apt-get install git-gui.)

затем я выбрал пункт меню Репозиторий - > Визуализировать Всю Историю Ветвей. В появившемся окне я затем выбрал пункт меню Файл - > Список Ссылок.

другое окно выскочил, перечисляя все мои теги (и другие ссылки). Они кликабельны, и после нажатия на один из них мне просто нужно было проверить нижний левый кадр для списка ветвей. Вот так:

Parent: somesha (message)
Parent: someothersha (another message)
Child:  anothersha (yet another message)
Branches: branch1, master, remotes/origin/branch2, remotes/upstream/branch1, etc
Follows: v1.1.2
Precedes: v1.1.4

с тегом вы отмечаете ссылку. Поэтому, когда вы находитесь в ветке dev и помечаете это состояние. Ваш тег находится на фактической ссылке. Так что в этом случае вы можете посмотреть gitk или другой инструмент, в котором показано дерево. Там вы можете увидеть, на какой ссылке находится тег.

git: есть ли что-то вроде тегов для каждой ветви?
http://git-scm.com/book/en/Git-Basics-Tagging

вот хорошее объяснение.


в отношении комментария @VonC о поиске фиксации, на которую ссылается тег, просто используйте:

git show <tag>

поскольку тег привязан к определенной фиксации, его можно использовать для отображения этой фиксации, что даст вам полную информацию о фиксации.