完整错误是:
远程:错误:无法锁定ref' refs / heads / fix / add_overlay':引用已存在
我使用的是SourceTree,但这并不重要我不会想。我一直在努力推动并且我一直收到这个错误,我该如何解决?
答案 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-remote
或git fetch -p
之后来判断是否是这种情况。根据他们的分支名称)。并且,如果 ,则应该说服他们 - 无论他们是谁 - 重命名或删除他们的分支fix
,以便您可以让他们创建名为fix/
的目录包含分支名称,如fix/add_overlay
。
答案 1 :(得分:0)
当尝试推送到与现有分支同名的文件夹时,可能会发生此错误。
答案 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
。这应该可行。