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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (124)

我在用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`

我怎么才能解决这个问题?谢谢。

提问于
用户回答回答于

冲突的文件可能位于多个位置,我将查看:

.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任何可疑的事情。

用户回答回答于

如果不确定这一次,请备份回购,因为这些命令是不可逆转的。

首先,转到repos目录。

cd myrepo

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

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

最后,从git的打包参考文件中删除任何“冲突的”引用。

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

扫码关注云+社区