通过任何东西删除git分支,而不是名称

时间:2018-05-16 08:12:51

标签: git git-branch

我在删除git branch时遇到问题。起初我能够使用'git checkout -b ....'创建它。但在我看来,我在写作时遇到了错误,遇到了错误,然后退格。它导致了这个分支的错误名称。

我能够在这个分支上工作,甚至将其推送到远程,但它会产生奇怪的行为(无法在Web界面中看到分支)。

git branch -r告诉我

origin/master
origin/rrseria_test_utility

在web界面(bitbucket)中,我可以在提交中看到以下名称

的分支
rrseriaÅl_test_utility

请注意,大写A不仅仅是A,而是A,上面有圆圈。看起来像utf-8字符'U + 00C5'。

当我尝试删除它时,

git branch -d rrseria_test_utility
error: branch 'rrseria_test_utility' not found. 

git checkout rrseria_test_utility
error: pathspec 'rrseria_test_utility' did not match any file(s) known to git. 

你能帮我怎么删除这个分支吗?

1 个答案:

答案 0 :(得分:0)

您可以使用git branch --list rrseria*仅列出名称以rrseria开头的分支。如果有多个模式,则可以使用*通配符作为非ASCII字符(rrseria*l_test_utility f.e。)。

此命令显示要删除的分支的名称。

如果您使用的是Linux或macOS,则可以使用其输出创建Git命令来删除该分支:

git branch -d $(git branch --list rrseria*)

或者您可以使用鼠标从git branch --list的输出中复制终端窗口中的分支名称并将其粘贴(返回到终端窗口)以创建git branch -d命令。

或者您可以使用您喜欢的文件管理器在.git/ref/heads目录中导航并删除名称与分支名称匹配的文件(这是git branch -d在后​​台执行的操作。)

之后,您必须将删除推送到远程存储库:

git push origin --prune refs/heads/*

如果您有多个遥控器,请为每个遥控器重复上述命令(将其名称改为origin)。