如何删除 Git 个冲突分支

How to delete a Git conflict branch

我得到以下输出:

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 并删除了其中不需要的 file/branch 。这似乎已经解决了它。

回复:原因,我正在使用的编辑器是 Atom(来自 github),我已经安装了一个包来执行来自编辑器的 git 命令。我认为那个包可能创建了那个冲突分支。

Space 不是 Git 分支名称中的合法字符。

这意味着如果 Git 本身 做了那个分支,那么你在 Git 中发现了一个错误。 (恭喜!)不过,更有可能的是,一个自认为比 Git 知道得更多的行为不端的程序,偷偷溜到 Git 的背后并创建了那个分支......并且由于 space 是在 Git 分支中不是合法字符,您可能需要再次偷偷溜到 Git 的背后才能删除它。

要做到这一点, 使用不会插入 BOM(字节顺序标记),也不会将纯文本文件转换为 Unicode 的文本编辑器来编辑 .git/packed-refs.如果其中有一行带有伪造的分支名称,请删除该行(或将名称修改为更合适的名称),然后写入文件。完成后退出编辑器。然后,检查 .git/refs/heads 中具有该名称的文件(包括嵌入的空白):如果存在,将其删除(或将其重命名为更合适的名称)。

伪造的分支名称必须至少存在于一处,也可能同时存在于两处,否则Git将无法将其作为分支名称找到。

您在 .git/logs/refs/heads/ 中也可能有一个具有相同假名的文件。如果是这样,该文件应该得到相同的处理(删除或重命名)。

(请注意,.git 目录出现在工作树的顶层。git rev-parse --git-dir 将显示它的路径,即使您在子目录中也是如此。)