Я клонировал реку москитов от https://github.com/eclipse/mosquitto. Он содержит тег v1.4.9
. Однако это не похоже на ветку.a git tag не на ветке
Как это могло случиться? Действительно ли автор сохраняет ветку на своем собственном репо, но только отталкивает теги от этой ветки до github? Или он просто совершает фиксацию тега?
Я сделал тег в местное отделение:
$ git checkout -b work149 v1.4.9
И посмотрел на последний коммит на ветке:
$ git log -1
commit 91bfd82491f90e24b6fe9c036f0b04a1f5c14a89
Merge: bf959ef 2d0af73
Author: Roger A. Light <[email protected]>
Date: Thu Jun 2 22:05:34 2016 +0100
Merge branch 'fixes'
Это коммита один больше, чем fixes
ветви.
Или с git log --graph
я могу увидеть более ранней фиксации на одной ветви (а не fixes
ветвь, но ветвь я пытаюсь понять):
* | commit bf959ef9b0ae0e4d74bf80158ffb0b7c69da533d
|\ \ Merge: 646e0a0 5cca6b4
| |/ Author: Roger A. Light <[email protected]>
| | Date: Sun Feb 14 14:38:42 2016 +0000
| |
| | Merge branch 'fixes'
| |
Как вы выяснить, является ли тег на ветке и на какой ветке? В левой вертикальной полосе указана ветка и где находится ветвь на пульте дистанционного управления?
Это обычная практика?
От a discussion thread about "Git pull doesn't get the tags" упоминается branch heads that are being tracked
и non-commits
. Интересно, оправдывает ли git clone
клон, чтобы не отслеживать все ветви на пульте дистанционного управления, или репо каким-то образом сделало теги не обязательными?
Теги и ветви - это просто указатели на фиксации, [с другой семантикой] (http://stackoverflow.com/questions/1457103/how-is-a-tag-different-from-a-branch-which-should- я-потребительной здесь). Тег не обязательно должен совпадать с веткой. – Jubobs
В частности, как вы создаете тег, который не находится в какой-либо ветке, и нажимаете этот тег на github? Как выполняются теги и отслеживаются теги? – minghua
Теги не версируются. Как сказал Джубобс, это всего лишь разновидность имен филиалов. Более конкретно, Git использует общую форму, называемую «ссылкой»: ссылка - это просто имя, которое разрешает идентификатор хэша (обычно идентификатор фиксации). Ветвь - это ссылка, которая перемещается определенным образом, а тег - ссылка, которая никогда не перемещается (и может использовать вспомогательный объект «аннотированный тег» для указания на фиксацию). Следуйте по ссылке, предоставленной Jubobs в его комментарии. – torek