git - 按任何内容删除 git 分支,而不是名称

标签 git git-branch

我在删除 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/

相关文章:

git - 为什么git要求输入 merge 消息?

Git:需要一个修订错误

git - 查找删除分支的人?

git - 在 visual studio 中意外删除分支 git

Git 使用 -b 检查较旧的标签并提取最新的提交

git - merge 了两个 Git 分支,推送到服务器上,现在如何取消 merge 它们

git - 有没有办法从本地 git 工作树中删除所有被忽略的文件?

Git 扩展——为什么我看到同一个分支有多个标签?

Git 更改 pull 请求的源分支

GITLAB Web IDE更改默认选项-创建新分支