如何删除Git冲突分支



执行此操作时得到以下输出:

git branch
somebranch
anotherbranch
* master
master - myemail@mydomain.com's conflict 09.04.2016_15.02.31

那么最后的冲突分支是什么呢?我不知道如何查看它,如何查看其中的内容以及如何删除它(这是我最终想要做的)。

注:这件事发生在不久前,我不记得是怎么回事了。我离开了,但它一直困扰着我,所以我现在想解决它。

更新:Torek的回答帮助了我。我找不到文件.git/packed-refs。我确实找到了目录.git/refs/heads,并删除了不需要的文件/分支。这似乎已经解决了它。

re:原因,我使用的编辑器是Atom(来自github),我已经安装了一个包来从编辑器执行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将显示它的路径,即使您在子目录中。

最新更新