2016-11-20 11 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) 

とrefログの

$ 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)は、同じ小文字の名前を持つ2つのファイルのDropboxのマーカーです。

1文字大文字でブランチを作成したとき、Dropboxは名前を小文字に変更し、競合マーカーを追加します。

私はブランチへの参照を削除することでこれを解決しましたが、Dropboxフォルダにレポを残さないようにする必要があります。それはこれより悪いことをすることができます。

ファイル名の形式が正しくないため、git branch -Dでの削除は機能しません。

私は手でファイルを削除:

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

が、私は、これは完全に安全であるか分かりません。