如图所示,不确定-h
-merged
--help
分支的创建方式
如何删除不需要的分支[/偶然创建]分支?
更新 来自git bash的文本[Windows]
$ git branch -a
* calc
master
–-help
–h
–merged
remotes/origin/master
答案 0 :(得分:1)
您发布了图像,而不是复制并粘贴bash会话中的文本(我假设这是bash会话),因此很难确定这一点,但是这些分支很可能< em>不是命名为-h
,-merged
,依此类推,而是命名为–h
,–merged
,依此类推。仍然很难分辨,但是第二组名称的首字符是一个破折号,而不是连字符。破折号是Unicode字符U + 2013。
用于输入此类字符的键盘方法取决于OS和/或键盘和/或其他软件:此处的标准很少。 (在MacOS上,最简单的输入方法是按住选项键并按-键。)
要以编程方式处理它,可以使用Python。例如,在Python 3中:
>>> import subprocess
>>> s = subprocess.check_output('git branch', shell=True).split(b'\n')
现在打印s
中的值将产生分支名称作为字节字符串列表。就我而言,在创建名为–merged
的分支之后,其中一个(在我的测试库中为s[5]
)是:
b' \xe2\x80\x93merged'
其中显示了破折号的UTF-8编码序列:
>>> s[5].decode('utf8') == ' \N{en dash}merged'
True
>>> s[5].decode('utf8') == ' \u2013merged'
True
要删除它,我可以再次从Python调用git branch -D
:
>>> subprocess.check_call('git branch -D \N{en dash}merged', shell=True)
Deleted branch –merged (was 4ede3d42df).
0
(请注意,在Python 2.7中,这有点不同,因为内置字符串类型等效于bytes
类型,而不是Python 2.7 unicode
类型。)
答案 1 :(得分:0)
我无法解释分支的创建方式,因为Git甚至不让我创建以破折号开头的名称的分支,但这是如何删除它们的方法:
git branch -d -- <branch_name>
如果--
以破折号开头,则可以防止Git将您的分支名称解释为选项。
如果Git告诉您分支尚未完全合并,并且您仍要删除它,则将-d
替换为-D
。但是,如果发生这种情况,我将在删除分支之前检查其内容。如果您偶然创建了分支并且从未对其进行任何操作,则不会发生这种情况。