git 如何摆脱“将痛击现有的标签”

f87krz0w  于 2023-01-11  发布在  Git
关注(0)|答案(4)|浏览(151)

我在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执行命令会有所帮助,直到下次执行。
我不清楚这里出了什么问题。发生了什么以及如何解决此问题?
我是说:除了毁了我本地的仓库和再次克隆。

y53ybaqx

y53ybaqx1#

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

git fetch --tags --force

然后再拉。

原因

在远程,某人删除了一个标签并创建了一个同名的新标签,然后这将发生在本地

nwnhqdif

nwnhqdif2#

既然您说不清楚出了什么问题,我假设您没有使用该标记做任何事情,您只是想做自己的工作。
关闭此设置:

  • 或将此"git.pullTags": false添加到settings.json文件中'*

现在你都准备好了

    • 详细说明:**

标签只是对特定提交的引用(就像分支名称一样),主要区别是git(据我所知)假设标签不会改变,而分支则期望被更新。
因此,"错误"是您在本地有一个名为latest的标记指向提交X-但远程有一个名为latest的标记指向提交Y。如果您从远程应用更改,您将覆盖本地标记。
默认情况下,VSCode将提取所有标记,因此您会得到错误。
有一个像latest这样的"移动"标记没有什么"错误",这只是VSCode没有考虑到(个人观点)。
或者,您可以使用命令行并手动输入git pull命令来避免此问题。具体来说,您需要省略--tags以跳过此过程步骤。
如果你这样做,你的标签将不会更新-但我不认为这是一个问题。

ct3nt3jp

ct3nt3jp3#

原因可能是您或其他参与者删除了原始标记并重新创建了相同的标记。
解决方案:

git fetch --tags -f

强制刷新本地标记
当使用按钮更新编辑器中的代码时,默认情况下将首先使用git pull --tags origin master
因此,您可以将此"git.pullTags": false添加到Vscode的配置文件settings.json中

tgabmvqs

tgabmvqs4#

编辑:需要澄清的是,最初的问题与git问题有关。虽然可能不明显,但yarn也可能有git依赖项。因此,对于在运行yarn install时出现此错误的0.1%用户,这是为您准备的!如果没有,请使用已接受/热门答案。
当我尝试运行yarn install时,我得到了这个包的错误。接受的答案是当前的repo,对我不起作用,但这个工作:

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

我以前试过删除node_modules,我猜是清理Yarn缓存造成的。

相关问题