Git致命:引用的格式无效:'refs / heads / master

时间:2012-10-07 22:41:46

标签: git dropbox

我正在使用Dropbox同步git存储库,但现在当我尝试push时出现错误:

fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'

因此,似乎Dropbox检测到冲突并创建了副本。好的,没问题,所以我删除了冲突的文件。尽管如此,仍然可以获得上述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`

我该如何解决这个问题?感谢。

8 个答案:

答案 0 :(得分:178)

如果你不确定这个,那么

备份你的仓库,因为这些命令是不可逆转的。

首先,转到您的repo目录。

cd myrepo

然后递归搜索冲突的文件并删除它们

find . -type f -name "* conflicted copy*" -exec rm -f {} \;

最后,从git的packed-refs文件中删除任何“冲突的”引用

awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs

答案 1 :(得分:42)

冲突的文件可能在多个地方,我会查看:

.git/logs/refs/remotes/origin/
.git/logs/refs/heads/
.git/refs/remotes/origin/
.git/refs/heads/

或者您可以查看.git子目录中的任何位置:find . -name '*conflicted*'

或者,否则,将活动分支列为git branch -a并删除(git branch -d)任何可疑分支。

答案 2 :(得分:8)

当我的同事在Dropbox更新之前推送他的更改并关闭PC时,我们的团队也会遇到这种情况。

我这么简单地解决了。

刚刚删除了冲突的副本。 (XXXX的冲突副本yyyy-mm-dd)

然后正常拉动。

请注意,我的同事在搞砸之前已经做了更改。他再次推动他的改变。这次没有关机。 :)

答案 3 :(得分:7)

我能够从.git文件夹中删除所有冲突的文件,但我继续收到有关不再存在的文件的错误。

对我的修复是打开.git/refs/packed_refs并删除包含“冲突”文字的行。

答案 4 :(得分:1)

对我来说这是错误的: 的 fatal: Reference has invalid format: 'refs/tags/r0.2:3'

您可以转到 / .git / packed_refs 文件并删除refs/tags/r0.2:3

的行

然后它开始工作了。但为什么它发生在我不知道的第一个地方。

答案 5 :(得分:0)

首先尝试使用git checkout master来获得健康,命名良好的分支。

答案 6 :(得分:0)

我得到同样的错误

  

致命:参考文件格式无效:' refs / heads / somebranch(1)'

用于以下命令

git branch

然后,我使用命令

搜索错误的名称(分支名称后跟(1))
find . -name 'somebranch (1)'

它显示了以下结果

  

./。git / refs / heads / somebranch(1)

somebranch IMO的某些重复版本。所以,我通过执行删除

之后的find命令删除了它
find . -name 'somebranch (1)' -print -exec rm -rf {} \;

然后分支命令成功运行

git branch

答案 7 :(得分:0)

我遇到了类似的错误,例如

<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

只需删除远程Dropbox存储库中的文件fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)' 即可解决问题。