我在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

在下次之前,用武力来执行命令是有帮助的。

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

我的意思是:除了破坏我的本地回购和再次克隆。


既然你说不清楚哪里出了问题,我假设你没有使用这个标签做任何事情,你只是想做自己的工作。

关闭此设置:

或者加上这个“少不更事者”。pullTags":设置为false。json文件”

现在你都准备好了。


详细解释:

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

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

VSCode将默认拉出所有标签,因此您将得到错误。

使用“移动”标签(如latest)并没有什么错,只是VSCode没有考虑到这一点(个人意见)。


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

如果你这样做,你的标签将不会更新-但我不认为这是一个问题。


你应该用远程标签更新你的本地标签:

git fetch --tags --force

然后再拉。

原因

在远程上,有人删除了一个标记并创建了一个具有相同名称的新标记,那么这将在您的本地上发生


编辑:需要澄清的是,最初的问题与git问题有关。虽然不是很明显,但yarn也可以依赖git。所以对于在运行yarn安装时出现此错误的0.1%的用户,这是为您准备的!如果不是,就用公认的答案。


我在试图运行yarn安装时得到了这个包的错误。接受的答案是当前的回购,对我来说不适用,但这是有效的:

rm -rf **/node_modules && yarn cache clean

我试过之前只是删除node_modules,猜清洁纱线缓存是什么做的。


原因可能是您或其他贡献者删除了原始标记并重新创建了相同的标记。

解决方案:

git fetch --tags -f

强制刷新本地标签


当使用按钮更新编辑器中的代码时,默认情况下将首先使用git pull——tags origin master

因此,您可以添加这个“git”。pullTags":配置文件设置中的false。Vscode的json