Что происходит в Git с тегом, когда вы изменяете коммит, который был помечен? - PullRequest
13 голосов
/ 29 июня 2010

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

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

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

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

1 Ответ

11 голосов
/ 29 июня 2010

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

Чтобы получить хорошее представление о том, как работает git, взгляните на выступление Скотта Чакона по Rails Conference о gitgitcasts.com.Также прочтите короткую книгу по git: progit.org/book.

...