В настоящее время я занят проектом с большим количеством веток, и у меня есть тег для последних изменений, который выполняется на одной из ветвей. Но мне непонятно, на какой ветке этот тег.
Как узнать, на каком теге ветки?
В настоящее время я занят проектом с большим количеством веток, и у меня есть тег для последних изменений, который выполняется на одной из ветвей. Но мне непонятно, на какой ветке этот тег.
Как узнать, на каком теге ветки?
Еще короче:
git branch --contains tags/<tag>
(он работает для любой древовидной ссылки)
Если вы можете найти который передает тег, ссылается на:
git rev-parse --verify tags/<tag>^{commit}
# or, shorter:
git rev-parse tags/<tag>~0
Затем вы можете найти какая ветвь содержит эту фиксацию.
git branch --contains <commit>
Как прокомментировал ниже user3356885, для выбранных ветвей (ветки в пространстве имен пультов)
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 gui.
Начните так:
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>
Так как тег привязан к конкретному фиксатору, его можно использовать, чтобы показать, что commit - который даст вам полную информацию о фиксации.