Git 推送错误“无法锁定引用”“引用已存在”

Mik*_*679 8 git push

完整的错误是:

远程:错误:无法锁定引用“refs/heads/fix/add_overlay”:引用已存在

我正在使用 SourceTree,但我认为这应该不重要。我一直尝试推送,但不断收到此错误,我该如何解决?

tor*_*rek 5

TL;DR:尝试删除他们的分支fix,即他们的分支refs/heads/fix,我怀疑这是阻碍。(确保他们不在乎你是否删除它!)

\n\n
\n\n

错误消息非常奇怪。如果引用refs/heads/fix/add_overlay存在,那不是问题!Git 应该能够锁定它,如果不能,它不能的原因不是“因为它存在”。

\n\n

我怀疑这可能是一个误导性的错误消息:可能存在引用refs/heads/fix\xe2\x80\x94而不是 refs/heads/fix/add_overlay\xe2\x80\x94,因此不可能创建一个目录 refs/heads/fix/来保存子引用,refs/heads/fix/add_overlay因为现有的参考refs/heads/fix是碍事的。

\n\n

您可以通过检查存在的引用集来判断是否是这种情况(通过使用git ls-remote,或在 后git fetch -p,查看您自己的基于分支名称的远程跟踪名称集)。而且,如果这种情况,您应该说服他们\xe2\x80\x94,无论他们是谁\xe2\x80\x94,重命名或删除他们的分支,fix以便您可以让他们创建一个名为fix/包含分支名称(如fix/add_overlay.

\n

  • 您在此处的评论中以大写形式拼写了“Fix”。服务器上是否可能存在区分大小写的“修复”与“修复”以及某种大小写折叠问题? (4认同)