如何摆脱“会破坏现有标签”


130

我在VSCodium中使用git,每次尝试拉git时都会抱怨。

查看日志,我看到了

> git pull --tags origin master
From https://github.com/MY/REPO
 * branch            master     -> FETCH_HEAD
 ! [rejected]        latest     -> latest  (would clobber existing tag)
   9428765..935da94  master     -> origin/master

使用命令可以--force帮助您直到下次。

我不清楚这里出了什么问题。发生了什么事,我该如何解决这个问题?

我的意思是:除了破坏我的本地仓库并再次克隆外。

Answers:


333

您应该使用远程标签更新本地标签:

git fetch --tags -f

然后再拉。


14
这对我有用。我遇到了VSCode的问题,然后在命令行中运行它解决了该问题。:)
Juan Luis Faylon

2
谢谢,您能详细说明一下吗?这是一次性的命令,究竟是问题以及如何解决这个吧..
Sagiv BG

5
@ Sagivb.g在远程上,有人删除了一个标签并创建了一个具有相同名称的新标签,然后这将在您的本地发生
Tuan Tran

41

既然您说不清楚发生了什么问题,所以我假设您没有对该标签使用任何东西,而您只是想做自己的工作。

关闭此设置:

在此处输入图片说明

现在您已经准备就绪。


详细说明:

标签只是对特定提交的引用(就像分支名称一样)。主要区别在于git(据我所知)假设标签不会更改,而分支将在此更新。

因此,“错误”是您在本地中有一个名为latest指向提交X的标记-但远程有一个名为latest指向提交Y的标记。如果从远程应用更改,则将覆盖本地标记。

VSCode将默认拉出所有标签,因此会出现错误。

像这样的“移动”标签没有任何问题latest,而这并不是VSCode所考虑的(个人观点)。


或者,您可以通过使用命令行并手动输入git pull命令来避免此问题。具体来说,您需要省略--tags以跳过该过程的这一步。

如果执行此操作,则不会更新您的标签-但我认为这里没有问题。


非常感谢。我必须更新我的VSCodium,但随后它起作用了。我想,我也可以摆脱本地标签吗?
Skeeve

1
请在下面查看我的答案
Tuan Tran
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.