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>
поскольку тег привязан к определенной фиксации, его можно использовать для отображения этой фиксации, что даст вам полную информацию о фиксации.