当我这样做时,我得到以下输出:
git branch
somebranch
anotherbranch
* master
master - myemail@mydomain.com's conflict 09.04.2016_15.02.31
那么最后那个冲突分支是什么?我不知道如何检查它,如何查看其中的内容以及如何删除它(这最终是我想要做的)。
P.S。这发生在不久前,我现在不记得了。我离开了它,但它一直困扰着我,所以我想现在解决它。
更新:Torek的回答帮助了我。我找不到文件.git/packed-refs
。我确实找到了目录.git/refs/heads
并删除了那里不需要的文件/分支。这似乎已经解决了。
re:原因,我使用的编辑器是Atom(来自github),我已经安装了一个包来从编辑器执行git命令。我认为该软件包可能创建了冲突分支。
答案 0 :(得分:2)
空格不是Git分支名称中的合法字符。
这意味着如果 Git本身创建了该分支,那么您在Git中发现了一个错误。 (恭喜!)但更可能的是,一个表现得比Git更好的程序,在Git的后面偷偷摸摸地创建了那个分支...而且因为空间不是Git分支中的合法角色,所以可能不得不再次躲回Git的后面去删除它。
要执行,使用不会插入BOM(字节顺序标记)的文本编辑器,也不会将纯文本文件转换为Unicode,以编辑.git/packed-refs
。如果其中有一行带有伪分支名称,请删除该行(或将名称修改为更合适的名称),然后编写该文件。完成后退出编辑器。然后,检查.git/refs/heads
中具有该名称的文件(包括嵌入的空白):如果存在,请将其删除(或将其重命名为更合适的名称)。
虚假分支名称必须至少存在于一个地方,也可能两个地方,否则Git不会将其作为分支名称找到。
您可能还在.git/logs/refs/heads/
中有一个具有相同虚假名称的文件。如果是这样,该文件应该得到相同的处理(删除或重命名)。
(请注意,.git
目录显示在工作树的顶层。git rev-parse --git-dir
将显示其路径,即使您位于子目录中。)