Git致命:引用的格式无效:'refs / heads / master
我正在使用Dropbox
来同步一个git
仓库,但现在当我尝试push
我得到一个错误:
fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
所以,Dropbox似乎发现了一个冲突并创build了一个副本。 好吧,没问题,所以我删除了冲突的文件。 尽pipe如此,获得上面的git错误。
$ git checkout master M index.html Already on 'master' $ git add . $ git commit -a -m "Cleanup repo" [master ff6f817] Cleanup repo 1 file changed, 5 insertions(+), 5 deletions(-) $ git push fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)' The remote end hung up unexpectedly`
我怎样才能解决这个问题? 谢谢。
如果您不确定这个问题,请对您的回购进行备份,因为这些命令是不可逆的。
首先,去你的回购目录。
cd myrepo
然后recursionsearch冲突的文件并删除它们
find . -type f -name "* conflicted copy*" -exec rm -f {} \;
最后,从git的packed-refs文件中删除任何“冲突的”引用
awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs
冲突的文件可能在多个地方,我会研究:
.git/logs/refs/remotes/origin/ .git/logs/refs/heads/ .git/refs/remotes/origin/ .git/refs/heads/
或者,您可能会在.git
子目录中查找无处不在: find . -name '*conflicted*'
find . -name '*conflicted*'
或者,否则,用git branch -a
列出活动分支并删除( git branch -d
)任何可疑的东西。
当我的同事在Dropbox更新之前推送他的更改并closuresPC时,这也发生在我们的团队中。
我简单地解决了它。
刚刚删除了冲突的副本。 (XXXX的冲突副本yyyy-mm-dd)
并正常拉。
请注意,我的同事之前有过这样的变化。 他再次推动他的改变。 这一次没有关机。 🙂
我能够从我的.git文件夹中删除所有冲突的文件,但是我继续得到关于不再存在的文件的错误。
对我的修复是打开.git/refs/packed_refs
和删除包含文本“冲突”的行。
首先尝试一下git checkout master
以获得一个健康,有名的分支。
我得到同样的错误
致命的:引用格式无效:'refs / heads / somebranch(1)'
为下面的命令
git branch
然后,我使用该命令search了错误的名称(分支名称后跟(1))
find . -name 'somebranch (1)'
并显示以下结果
./.git/refs/heads/somebranch(1)
哪个是somebranch IMO的一些重复的版本。 所以我通过执行find命令删除了这个
find . -name 'somebranch (1)' -print -exec rm -rf {} \;
然后分支命令成功运行
git branch
对我来说,它给错误: fatal: Reference has invalid format: 'refs/tags/r0.2:3'
您可以转到/.git/packed_refs文件并删除refs/tags/r0.2:3
然后开始工作。 但为什么它发生在我不知道的第一个地方。
我遇到类似的错误,如
fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)'
在远程Dropbox存储库中简单地删除文件.git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)
确实解决了这个问题。