我使用 IntelliJ (2016.1.3) 和 GIT 集成插件 (8.1)。 在使用 IntelliJ 期间,我检查了多个分支。现在,这些分支已从 GIT 中删除(在每次 pull 请求后,我们都会删除它们)。
从现在开始,我检查过的每个分支都会出现在我来自 Intellij 的 GIT View 中(通过 VCS > Git > Branches...),请参见:
有一种方法可以删除它们:删除...一个一个!但是如果有很多分支(比方说一百个......),它肯定会变得乏味......
问题是: 您知道在 IntelliJ 中是否有一种简单的方法可以从此 View 中删除所有孤立的本地分支?
谢谢:)
编辑:我找到了一种删除它们的方法,但使用的是另一个工具:“Git Gui”。当您从那里删除它时,它也会在 IntelliJ 中删除。并且您可以一次删除多个分支。
最佳答案
远程跟踪分支很容易与普通的 Git 分支混淆。远程跟踪分支以 remotes/
开头,如 remotes/origin/branch1
,尽管 Git 允许您省略 remotes/
作为速记,所以你也可以将 remotes/origin/branch1
简单地称为 origin/branch1
。但这些不是正常的分支。您不能提交给他们或直接检查它们。如果你尝试 check out 它们,Git 要么 check out 分离的 HEAD,要么自动创建一个与远程分支同名的新本地分支,例如分支 1
。这个新的本地分支永远不会被删除,除非告诉 Git 明确删除它。
发生的事情是双重的:
您需要确保 Git 正在修剪远程跟踪分支(
remotes/origin/branch1
等)。默认情况下它没有。参见 this question on pruning remote tracking branches如何做到这一点。基本上是git fetch -p origin
或git remote prune origin
。当您 check out 一个分支以对其进行处理时,您创建了一个与远程跟踪分支同名的本地分支。本地分支
branch1
永远不会被删除,除非你手动删除,即使远程跟踪分支remotes/origin/branch1
被修剪,如果branch1
已在远程服务器上删除。
您可以使用 git branch -d
手动清理这些分支(或者使用 -D
强制清理,如果分支从未被 merge ,这可能是必要的),或者查看 Remove old remote branches from Git 的答案以一种自动化的方式来做到这一点。
关于git - IntelliJ - GIT 在 GUI 中删除本地孤立分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38508550/