Что произойдет, если я нажму тег для коммита, который не был передан - PullRequest
4 голосов
/ 13 февраля 2012

Я использую скрипт развертывания, который при развертывании автоматически добавляет тег в HEAD (через 'git tag -f..'), Указывающий хост. Сценарий автоматически выдвигает тег (через 'git push --tags'), так что другие пользователи хранилища будут знать, какой коммит работает в данный момент на сервере. Как правило, я буду (вручную) отправлять коммит перед его развертыванием, поэтому тег будет соответствовать фиксации на удаленном сервере, но мне любопытно, что произойдет, если я протолкну тег для фиксации с помощью 'git push --tags ', где сам коммит еще не был выдвинут.

Ответы [ 2 ]

8 голосов
/ 13 февраля 2012

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

3 голосов
/ 13 февраля 2012

Все объекты, необходимые для этого тега, будут выдвинуты, но любые другие ссылки (например, HEAD или master) не будут обновлены.Таким образом, хотя внесенные вами изменения и ваши теги будут в удаленном репозитории, любой, кто использует мастер (или любую ветку, которую вы используете), еще не увидит ваш коммит в своей копии ветви.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...