Подтвердить что ты не робот

Что происходит в теге Git, когда вы изменяете фиксацию, которая была помечена?

Я передал несколько исходных файлов в мой репозиторий git и пометил его как новую версию своего программного обеспечения. Но я видел ошибку, которую только что сделал, и использовал функцию "изменить" , чтобы зафиксировать исправленные файлы.

Теперь я вижу, что тег не был перенесен на новый коммит (тот, который сделан с функцией "изменить" ). Но я также вижу, что тег все еще существует...

Я хотел бы знать, что произошло с тегом. Это ошибка? Является ли тег связанным с коммитом, который больше не существует?

Я знаю, что могу заставить создать тот же тег для нового коммита, но я считаю, что должен быть лучший способ (например, параметр командной строки в commit, использующий "изменить" ).

4b9b3361

Ответ 1

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

Чтобы получить хороший фон о том, как работает Git, взгляните на конференцию Scott Chacon Rails Conference о Git на gitcasts.com. Также прочитайте короткую книгу на git: progit.org/book.