删除一个命名不正确的git分支
我知道这不是严格的编程问题,但它与git有关。 我意外地在git中创建了一个名为--track
的分支(合并远程分支时,我得到了错误的选项顺序)
常规命令不起作用:
git branch -D "--track"
我试图用引号和反斜杠来逃避,但都没有成功。
有任何想法吗?
你试过了吗
git branch -D -- --track
? “ --
”通常是“以下不是一种选择,不管它的名字”
从“Unix编程的艺术”一节中,“命令行选项”一节:
将双连字符识别为停止选项解释的信号也是常规的,并按照字面意思处理所有后面的论点。
您会在其他(不需要与Unix相关的)CLI(命令行界面)(如cleartool)中找到该约定:
如果nonoption参数以连字符( –
)字符开头,则可能需要在它之前加上一个双连字符参数,以防止它被解释为一个选项:
cleartool rmtype -lbtype -- -temporary_label-
P18(一种快速灵活的文件预处理器,具有宏处理功能和对国际化的特殊支持)也提到了这一点,并对该规范背后的总体思想进行了很好的描述:
所有传递给命令的选项参数都以一个连字符开头。
所有选项参数(如果有)必须位于所有非选项参数之前。
选项参数的结尾可以使用双连字符来表示,如果非选项参数以连字符开头,这很有用。 使用双连字符终止选项参数列表适用于所有命令,即使那些不带任何选项参数的选项参数也适用。
用Ruby编写的OptionParser工具也很清楚地说明了这一点:*
选项分析终止
按照约定,双连字符是停止选项解释并从字面上读取命令行中其余语句的信号。 所以,一个命令如:
app -- -x -y -z
将不会'看到'三个模式标志。 相反,它们将被视为应用程序的参数:
#args = ["-x", "-y", "-z"]
注意:有时,它需要三个破折号而不是两个,特别是当CLI严格遵循Gnu选项样式时:
Gnu样式的命令行选项提供对选项字(或关键字)的支持,但仍保持与Unix样式选项的兼容性。
这种风格的选项有时被称为long_options
,而Unix风格的选项被称为short_options
。
通过在两个短划线之前的long_options来维护兼容性
类似于Unix风格的双连字符' --
',Gnu风格有一个三连字符' ---
'来表示选项解析被暂停,并将其余文本作为参数处理(即,从命令中逐字读取线)
所以......如果' --
'不够(应该用Git命令),试试' ---
'
git branch -D -- --track
我使用的是msysgit 1.7.0.2,建议的解决方案不起作用:
git分支-D - --track#不起作用
没有错误报告,但分支仍然存在。 我结束了通过强行删除分支:
rm .git / refs / heads / - track
链接地址: http://www.djcxy.com/p/50861.html上一篇: Deleting a badly named git branch
下一篇: Difference between "git checkout <filename>" and "git checkout