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)确实解决了这个问题。