2012-10-07 58 views
99

我使用Dropbox同步一個git庫,但現在當我嘗試和push,我得到一個錯誤:Git的致命:參考格式無效:「裁判/頭/主

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` 

我該如何解決這個問題?謝謝。

回答

0

嘗試git checkout master第一次登上健康,有名的分支。

+0

在原始文章中更新了輸出。 – Justin

+0

嗯,你可以試試一個完整的'git push origin master',並且粘貼'git branch -a'的輸出嗎? – poke

+0

同樣的錯誤在這裏...嘗試'git branch -a'導致這個錯誤! – trusktr

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)任何可疑的東西。

+0

'.git'裏的任何地方都有衝突的文件。我徹底刪除了它們,並修復了它們。謝謝。 – Justin

+2

@Justin很高興我能幫到你。如果此答案或任何其他人解決了您的問題,請將其標記爲已接受。 –

+2

在Mac OS X上使用:'find。名稱'*衝突*''(編輯:格式) – xgMz

7

我能夠從我的.git文件夾中刪除所有衝突的文件,但我繼續得到有關不再存在的文件的錯誤。

修復程序對我開放.git/refs/packed_refs並刪除包含文本「衝突」的行。

177

如果您不確定這個問題,請備份您的回購庫,因爲這些命令是不可逆的。

首先,轉到您的倉庫目錄。

cd myrepo 

然後遞歸搜索有衝突的文件,並刪除它們

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

最後,請從Git的填充裁判文件

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

我有同樣的問題,這爲我解決了它。謝謝! – erik

+0

這也給我修好了。謝謝! – cecconeurale

+0

爲macos用戶找到。 -type f -name「*衝突副本*」-delete「 – Soyoes

8

這也發生在任何「衝突」引用我們當我的同事在Dropbox更新之前推送他的更改並關閉PC時,這個團隊就是一個團隊。

我很簡單地解決它。

剛剛刪除了衝突副本。 (XXXX的衝突副本yyyy-mm-dd)

並正常拉動它。

請注意,我的同事之前做過的更改搞砸了。他再次推動他的改變。這一次沒有關機。:)

+1

絕對適合我:) thx - 對我來說dropbox創建了一些奇怪的字符串文件名,它與」更新「不兼容 – cV2

+1

這對我有效!在/ refs/heads文件夾中有一個名爲「衝突副本」的文件,並刪除該文件,然後拉/推,一切正常。謝謝! – DiscDev

0

我得到相同的錯誤

fatal: Reference has invalid format: '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 
0

對我來說是給錯誤: fatal: Reference has invalid format: 'refs/tags/r0.2:3'

你可以去/.git/packed_refs文件並刪除該行refs/tags/r0.2:3

然後它開始工作。但爲什麼它首先發生在我不知道的地方。

0

我encounterd了類似的錯誤,如

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)的解決了問題。

相關問題