为什么我的标签在本地和远程指向不同的提交?

问题描述

标记一个提交并将其git push编辑到 origin。然后我的同事将标签移到他所做并推送的提交上。我拉了 origin,但是当我 git log 时,我仍然看到标记指向我的提交。当我进入 Web 界面时,我可以看到标签指向我同事的较新提交。我尝试了 git fetch --allgit fetch --tags,但无济于事。
为什么我的本地标签没有反映 origin 上的更改?

解决方法

标签不会移动,所以默认情况下 git fetch 拒绝移动标签。 (git fetch 的输出应该告诉您它拒绝了标签更新,并附有“将破坏现有标签”之类的注释。)

您可以强制更新本地标签

git fetch -f --tags

一般来说,您应该避免经常移动标签的过程。