Git:如何使现有的轻量级git标签指向另一个提交?

4
在一个测试的Git存储库中,git log命令产生以下结果:
commit e1f972f22f9906ad62007b4e372d8dc06bc47656
Author: davidandreoletti
Date:   Sun Mar 18 11:23:09 2012 +0800
   Added 0

commit 81a07eeffc58b054d4c083a0d7c1d4aa0b0440d5
Author: davidandreoletti
Date:   Sun Mar 18 10:46:44 2012 +0800

   first commit

git tag 0.0.2是一个轻量级标签,指向提交81a07eeffc58b054d4c083a0d7c1d4aa0b0440d5。 所有提交(包括标签)都已推送到远程存储库中。

在这种情况下,如何使现有的Git "轻量级标签"指向另一个提交? 即我想让标签“0.0.2”指向提交e1f972f22f9906ad62007b4e372d8dc06bc47656而不是81a07eeffc58b054d4c083a0d7c1d4aa0b0440d5

2个回答

6

只需删除旧标签并创建新标签即可。

git tag -d 0.0.2
git tag 0.0.2 e1f97...

假设您有一个远程存储库需要使用,您还需要执行以下操作:
git push --tag --force <remote>

1

一般来说,你不应该这样做。Git会尽力阻止你的操作。

git tag -d 0.0.2
git tag 0.0.2  e1f972f22f9906ad62007b4e372d8dc06bc47656

如果没有被推送,应该可以工作。


2
虽然普遍认为这是一个不好的做法,应该尽量避免。但如果标签已经被推送,你可能需要使用 git push --force 命令。 - Andrew Marshall
1
@AndrewMarshall:通常情况下,我也会避免这样做,但是现在我在进行一个单人开发项目,在该项目中开发者(即我)标记了错误的提交。因此,我认为在这种情况下这是完全允许的。 - David Andreoletti
1
在这种情况下,是的,这可能没问题,但对于未来的访问者来说,注意一下会比较好 :) - Andrew Marshall
值得注意的是,如果您认为主分支会发生更改,请将其保留为分支而不是标签 :) - richo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接