删除名称包含怪异字符的分支

Uba*_*eri 2 git branching-and-merging git-branch

我使用Git Bash,并且错误地创建了一个名为-D的分支。在通过Google搜索之后,我尝试了

git branch -d -- -D 
Run Code Online (Sandbox Code Playgroud)

获得

error: branch '-D' not found. 
Run Code Online (Sandbox Code Playgroud)

而且我也试图从gitk中删除它,但没有成功。

另一方面,我注意到如果git branch从控制台键入或在gitk上显示分支名称,则分支名称会更改。例如,分支在控制台中为-D,但在gitk上用奇怪的字符命名。

用git log获得的分支名称

分支名称显示在gitk中

此时,我将怪异的名字从gitk复制/粘贴到控制台,然后发出

git branch -d â?"D
Run Code Online (Sandbox Code Playgroud)

没有成功。

但是,我收到警告消息:“警告:您的控制台字体可能不支持Unicode。如果在输出中遇到奇怪的字符,请考虑切换到TrueType字体,例如Lucida Console!”

作为最后一次尝试,我尝试从gitk中删除该分支,但出现一个弹出窗口,显示“错误:分支,找不到另一个奇怪且较长的名称 ”。

这次,由于无法从弹出窗口复制,因此无法从弹出框复制另一个粘贴又长又怪异的名称到控制台。

Cod*_*ard 5

用引号括住分支名称

git branch -D "-D"
Run Code Online (Sandbox Code Playgroud)

其他选择

如果您在本地拥有它,则只需将其从.git/ref/heads/branch_name文件夹中删除并删除即可。

  • 这个答案没有意义。引号在这里完全没有作用——shell 会将它们剥离,而 git 将看到与没有它们时完全相同的参数。引号只对保护 shell 元字符(如空格)有意义,这不是这里的问题。 (2认同)