Git Push Error"无法锁定ref" "引用已经存在"

时间:2017-12-07 21:01:08

标签: git push

完整错误是:

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

我使用的是SourceTree,但这并不重要我不会想。我一直在努力推动并且我一直收到这个错误,我该如何解决?

3 个答案:

答案 0 :(得分:1)

TL; DR:尝试删除他们的分支fix,即他们的refs/heads/fix,我怀疑它是挡路的。 (如果你将它删除,请确保他们不在乎!)

错误信息很奇怪。如果引用refs/heads/fix/add_overlay存在,那不是问题! Git应该能够锁定它,如果它不能,那么它不能"因为它存在"。

我怀疑这可能是一个误导性的错误消息:可能是参考refs/heads/fix - refs/heads/fix/add_overlay - 存在,所以它不可能创建一个目录 refs/heads/fix/,其中包含子引用refs/heads/fix/add_overlay,因为现有引用refs/heads/fix正在阻碍。

通过查看您自己的一组远程跟踪名称,可以通过检查存在的引用集(使用git ls-remotegit fetch -p之后来判断是否是这种情况。根据他们的分支名称)。并且,如果 ,则应该说服他们 - 无论他们是谁 - 重命名或删除他们的分支fix,以便您可以让他们创建名为fix/的目录包含分支名称,如fix/add_overlay

答案 1 :(得分:0)

当尝试推送到与现有分支同名的文件夹时,可能会发生此错误。

https://stackoverflow.com/a/22630664/1803879

答案 2 :(得分:0)

要消除该错误,请导航至您的项目目录并运行git remote,然后通过运行git remote rm origin除去来源。创建一个新的存储库, [假设您使用GitHub] ,方法是运行git remote add origin https://github.com/your_user_name/your_repository_name.git,然后将所做的更改推送到远程服务器git push -u origin master。这应该可行。