当您修改标记的提交时,Git中的标记会发生什么?

时间:2010-06-29 18:22:54

标签: git tags commit

我已经将一些源文件提交到我的git存储库并将其标记为我的软件的新版本。但我看到我刚刚犯了一个错误,并使用“修改”功能来提交更正后的文件。

现在,我看到标签未转移到新提交(使用“修改”功能制作的提交)。但我也可以看到标签仍然存在......

我想知道标签发生了什么。这种行为是个错误吗?标签是否已链接到不再存在的提交?

我知道我可以强制在新提交中创建相同的标记,但我相信应该有更好的方法(比如使用“修改”提交的命令行参数)。

1 个答案:

答案 0 :(得分:11)

这是设计的。 Git跟踪提交,标签,blob和树作为其内容的SHA-1哈希值。它们只是指向对象的指针。标签指向的对象仍然存在。在修改之前,这是提交的版本。只需删除标记并再次创建即可。确保您让使用存储库的其他人知道您从该提交开始执行任何操作时所执行的操作。

要了解git如何运作的好背景,请参阅Scott Chacon的Rails Conference关于gitcasts.com上git的讨论。另外,阅读git:progit.org/book上的短篇小说。