2016-11-20 81 views
-1

我不小心做出具有相同的名稱作爲一個現有的分支的一個分支,但不同的情況下刪除的Git分支:與案件衝突

$ git branch 
* master 
    issue_fix 
$ git branch issue_Fix 

我嘗試使用git branch列出的分支機構,但得到這個錯誤:

fatal: Reference has invalid format: 'refs/heads/issue_fix (Case Conflict)' 

我認爲git試圖創建分支後轉換爲小寫,但這是一個衝突。檢查分支裁判:

$ ls .git/refs/heads/ 
master 
issue_fix 
issue_fix (Case Conflict) 

而且在裁判日誌

$ ls .git/logs/refs/heads/ 
master 
issue_fix 
issue_fix (Case Conflict) 

我不能git branch -D

$ git branch -D "issue_fix (Case Conflict)" 
error: branch 'issue_fix (Case Conflict)' not found. 

刪除它是安全的只是刪除".git/logs/refs/heads/issue_fix (Case Conflict)"".git/refs/heads/issue_fix (Case Conflict)"

+0

你正在使用哪個git版本? – mallaudin

+0

git版本1.9.1 – reasgt

+0

在沙箱中測試,我可以創建具有相同名稱但不同大小的分支。不過,我不能在我的問題中重現問題。 – reasgt

回答

2

我有我的回購在Dropbox文件夾,這通常是一個壞主意。 (Case Conflict)是具有相同小寫名稱的兩個文件的Dropbox標記。

當我使用大寫字母創建分支時,Dropbox將其重命名爲小寫並添加衝突標記。

我通過刪除對分支的引用來解決此問題,但我也應該避免將我的回購保留在Dropbox文件夾中。它可以做比這更糟糕的事情。

使用git branch -D刪除不起作用,因爲文件名格式不正確。

我手工刪除的文件:

$ rm ".git/logs/refs/heads/issue_fix (Case Conflict)" 
$ rm ".git/refs/heads/issue_fix (Case Conflict)" 

,但我不知道這是完全安全的。