Имя тега должно быть определенным именем для одного конкретного коммита , т. Е. Одного необработанного хеш-идентификатора.
Когда вы изменяете файл README.md
(или добавляетеновый) и сделать новый коммит, это ... новый коммит.У него другой хэш-идентификатор.Вы должны сделать новый тег, если вы хотите использовать тег вообще здесь, чтобы запомнить хеш-код нового коммита:
git checkout v1.2 # goes into detached HEAD mode
... modify files, commit them ...
git tag -a v1.3 # make new tag `v1.3`
git push origin v1.3
Это возможно возможночтобы переместить тег в новый коммит, но тогда вам придется использовать git push -f
, а другие, которые клонируют и используют ваш репозиторий origin
, могут не обновлять свой тег .
Подобные вещи, имеющие имя для последнего коммита, - именно то, для чего нужны имена ветвей.Если бы вместо тега типа v1.2
вы сделали:
git checkout foo # gets on branch foo
... modify files, commit them ...
git commit # makes new commit, updates foo to refer to it
git push origin foo
, все были бы удивлены последовательностью событий.