【问题标题】:How to delete local git branch with weird character in branch name如何删除分支名称中带有奇怪字符的本地 git 分支
【发布时间】:2020-02-20 03:04:42
【问题描述】:

我不确定它是怎么发生的,但是我以某种方式创建了一个本地 git 分支,分支名称中有一个奇怪的字符。当我键入git branch 时,列出的分支之一是myBranch<U+0094>。我想删除这个分支,但是当我通过复制确切的分支名称来删除分支时,会发生以下错误:

$ git branch -d myBranch<U+0094>
bash: syntax error near unexpected token `newline'

我正在为 Windows 使用 git bash。任何帮助,将不胜感激。提前致谢!

【问题讨论】:

  • 我假设它实际上是一个 U+0094 字符(参见fileformat.info/info/unicode/char/0094/index.htm),在这种情况下,输入git branch -d $'myBranch\224bar'。这使用 bash/sh `$'...'`` 语法,它接受八进制转义。
  • error: branch 'myBranchbar' not found. 我不确定“栏”部分是干什么用的。
  • 糟糕,我正在使用一个测试分支,我在其中添加了 bar 到末尾,因此我可以尝试使用 \x\u 的几个变体。为您的案例省去bar 部分!

标签: git branch git-bash


【解决方案1】:

方式一:

尝试使用:

$ git branch -d -- myBranch<U+0094>

-- 在这里通知 getopt 停止解析选项。

方式 2:

  • 如果您使用 PowerShell,则转义字符是 " ` "(后撇号/grave 或反引号)。
  • 如果您使用 cmd.exe,则转义字符为 " ^ "(克拉)
  • 如果您使用 bash,则转义字符为 " \ "(反斜杠)

使用这些转义字符来转义特殊字符。

$ git branch -d myBranch\<U\+0094\>

【讨论】:

  • 这是很好的信息,可能会为某些人解决类似的问题。可悲的是,这三种技术都不适合我。他们都说没有找到分支。使用 Git GUI 也发生了同样的事情。我可能不得不忍受这个烦人的分支总是在那里。它并没有真正引起任何问题,但我想删除它。感谢您的尝试。
【解决方案2】:

转到.git/refs/heads/ 并使用rm 将其删除。 (专业提示:使用制表符完成,以便您的 shell 为您转义文件名。)

【讨论】:

  • 我不知道为什么,但是选项卡完成在 git branch -d 的选项卡完成失败的情况下工作。谢谢!
猜你喜欢
  • 2012-05-23
  • 1970-01-01
  • 2014-06-09
  • 2019-10-30
  • 1970-01-01
  • 2019-11-20
  • 2011-04-30
  • 2020-09-21
  • 1970-01-01
相关资源
最近更新 更多