我意外地创建了一个与现有分支同名的分支,但不同的情况:
$ 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 :(得分:4)
我在Dropbox文件夹中有我的回购,这通常是一个坏主意。 (Case Conflict)
是Dropbox的两个具有相同小写名称的文件的标记。
当我创建一个大写字母的分支时,Dropbox会将其重命名为小写并添加冲突标记。
我通过删除对分支的引用来解决这个问题,但我也应该避免将我的repo保存在Dropbox文件夹中。它可以做比这更糟糕的事情。
使用git branch -D
删除不起作用,因为文件名格式错误。
我手动删除了文件:
$ rm ".git/logs/refs/heads/issue_fix (Case Conflict)"
$ rm ".git/refs/heads/issue_fix (Case Conflict)"
但我不确定这是完全安全的。