如何修复会破坏现有标签的问题

Posted

技术标签:

【中文标题】如何修复会破坏现有标签的问题【英文标题】:how to fix the would clobber existing tag problem 【发布时间】:2020-06-12 18:05:37 【问题描述】:

我在 git 标记方面遇到了麻烦,现在我的构建管道(信号量)因以下错误消息而损坏。不知道如何解决这个问题。

错误信息

Unpacking 
objects: 100% (32/32), done.
From github.com:jack/my-app
   c8a2420..75ea515  develop         -> origin/develop
   b4069ce..9f672e1  feature/RY-1144 -> origin/feature/RY-1144
   8dbf387..ac9db9d  master          -> origin/master
 ! [rejected]        v1.46.0         -> v1.46.0  (would clobber existing tag)
 * [new tag]         v1.47.0         -> v1.47.0

更新

我正在使用带有一些扩展的可视化代码,并查看可视化代码中的回购历史,看起来标签可以被删除?如果我点击标签“v1.46.0”旁边的“x”,然后提交并推送(使用跟随标签),这会解决我的问题吗?

【问题讨论】:

您是否将v1.46.0 标记移至新提交?如果是这样,那么您可能需要让您的构建管道清除所有缓存并从您的存储库的新克隆开始。 我真的不知道发生了什么。可以直接删除导致问题的标签吗? 这能回答你的问题吗? How to get rid of "would clobber existing tag" 【参考方案1】:

原因是:远程上的标记v1.46.0 与本地克隆(CI 服务器本地)上的标记v1.46.0 指向的提交不同。


一个。检查v1.46.0 标记是否指向远程服务器上的正确提交(如果需要,手动更新),

b.通过运行以下两个命令之一强制更新 CI 服务器上的标签:

# to force update all tags :
git fetch --tags --force

# to force update only this specific tag :
git fetch origin -f v1.46.0:refs/tags/v1.46.0

【讨论】:

我假设表格是说左列是本地的,右列是远程的 输出提到了在远程端(左列)更新的分支/标签,以及将在本地端(右列)更新的引用。 你是说我可以运行第二行(而且只有第二行),它会将标签(v1.46.0)重新指向本地和远程的同一个提交? @Jack:是的(迟到总比没有好:))【参考方案2】:

通过运行以下命令删除远程上的违规标签已解决此问题

git push --delete origin v1.46.0

【讨论】:

这解决了问题@Tuan Tran - 谢谢【参考方案3】:

一般你可以使用git tag -l来显示你本地的git标签,然后git tag -d <tag_name>来删除错误标签。 在您的特定情况下,您需要使用git tag -d v1.46. 来解决您的问题。

【讨论】:

以上是关于如何修复会破坏现有标签的问题的主要内容,如果未能解决你的问题,请参考以下文章

当LINUX文件系统受到破坏时,如何检查和修复系统?

在 recyclerview 上退出文本会导致焦点问题并修复它会破坏键盘隐藏 EditText 可见性

如何修复browser / IERC20.sol:4:53:警告:此声明会影响现有声明

MongoError:拓扑被破坏,我该如何修复它? [复制]

如何修复“'GameObject'类型的对象已被破坏但您仍在尝试访问它”

如何修复'错误:asyncio:任务已被破坏,但它正在等待处理! Python中的错误