我在删除 git 分支时遇到问题。起初我能够使用“git checkout -b ....”创建它。但在我看来,我在写作时犯了一个错误,打错了一些东西,然后退格了。它导致该分支的名称错误。
我能够在这个分支上工作,甚至将其推送到远程,但它会产生奇怪的行为(在网络界面中看不到分支)。
git分支-r向我展示
origin/master
origin/rrseria_test_utility
在网络界面(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.
你能帮我如何删除这个分支吗?
最佳答案
您可以使用 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/*
如果您有多个 Remote ,请对每个 Remote 重复上述命令(输入其名称而不是 origin
)。
关于git - 按任何内容删除 git 分支,而不是名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50365592/