IntelliJ-GIT在GUI中删除本地孤立分支

IntelliJ-GIT在GUI中删除本地孤立分支,git,intellij-idea,Git,Intellij Idea,我使用IntelliJ(2016.1.3)和GIT集成插件(8.1)。 在使用IntelliJ的过程中,我签出了多个分支。现在这些分支被从GIT中删除(在每次拉取请求之后,我们都会删除它们) 从现在起,我签出的每个分支都会出现在Intellij的GIT视图中(通过VCS>GIT>Branchs…),请参见以下内容: 有一种方法可以删除它们:做它一个接一个!但是如果有很多分支(比如说一百个…),它肯定会变得单调乏味 问题是: 您知道在IntelliJ中是否有一种简单的方法可以从该视图中删除所有孤

我使用IntelliJ(2016.1.3)和GIT集成插件(8.1)。 在使用IntelliJ的过程中,我签出了多个分支。现在这些分支被从GIT中删除(在每次拉取请求之后,我们都会删除它们)

从现在起,我签出的每个分支都会出现在Intellij的GIT视图中(通过VCS>GIT>Branchs…),请参见以下内容:

有一种方法可以删除它们:做它一个接一个!但是如果有很多分支(比如说一百个…),它肯定会变得单调乏味

问题是: 您知道在IntelliJ中是否有一种简单的方法可以从该视图中删除所有孤立的本地分支吗

谢谢:)


编辑:我找到了一种删除它们的方法,但是使用了另一个工具:“GitGUI”。当您从那里删除它时,它也会在IntelliJ中删除。您可以一次删除多个分支。

在项目目录中打开控制台并运行:

git remote prune origin
它删除对远程分支的任何本地引用,这些分支在名为
origin
的远程存储库中不再存在

如果不是
origin
,则用远程存储库的名称替换上面命令中的
origin

据我所知,使用IntellijGit插件无法实现这一目标


更多信息请访问:

我认为删除本地git分支的另一种方法如下,根据您的要求可能会对您有所帮助

git分支-d分支1分支2分支3分支4

如果您从项目目录在终端上执行上述命令,那么它将删除您通过的所有分支,即branch1 branch2。。。分支机构

我希望它能帮助你。
谢谢。

远程跟踪分支很容易与普通Git分支混淆。远程跟踪分支以
remotes/
开始,如
remotes/origin/branch1
中所述,尽管Git允许您省略
remotes/
作为缩写,因此您也可以将
remotes/origin/branch1
简单地称为
origin/branch1
。但这些不是正常的分支。你不能直接向他们承诺或检查他们。如果您尝试签出它们,Git将签出分离的头,或者它将自动创建一个与远程分支同名的新本地分支,例如
branch1
。这个新的本地分支永远不会被删除,除非它告诉Git显式删除它

发生的事情有两方面:

  • 您需要确保Git正在修剪远程跟踪分支(
    remotes/origin/branch1
    等)。默认情况下不会。请参阅以了解如何执行此操作。基本上是
    git fetch-p origin
    git remote prune origin

  • 签出分支以处理该分支时,您创建了一个与远程跟踪分支同名的本地分支。除非您手动删除本地分支
    branch1
    ,否则将永远不会删除本地分支,即使远程跟踪分支
    remotes/origin/branch1
    被删除,这是在远程服务器上删除
    branch1
    时完成的


  • 您可以使用
    git branch-d
    手动清理这些分支(或者使用
    -d
    强制清理,如果分支从未合并,这可能是必要的),或者查看对的答案以获得自动清理方法。

    我尝试了@Guillaume M的更新答案,效果很好。我有很多本地分支(在我的IntelliJ上),它们在远程合并和删除时处于松散状态。在一段时间内没有进行任何整理工作,悬而未决的参考资料不断堆积。因此,基本上这些是孤儿,不跟踪任何远程分支

    下面是我为清理它们所做的工作——使用“Git Gui”删除孤立的本地分支,并刷新/重新启动IntelliJ(虽然不是强制性的)。GitGUI对于这种批量删除分支似乎有点方便

  • 启动“Git Gui”工具
  • “打开现有存储库”。选择您正在使用IntelliJ IDE的存储库的路径
  • 在顶部菜单上,选择“分支”->“删除”
  • 此时会出现一个弹出窗口,其中包含存储库中的所有本地分支
  • 选择要删除的所有本地分支,然后单击“删除”。您可以添加先决条件以防止意外删除。在我的例子中,它们都是松散地挂起的引用,没有关于它们被合并到其他分支的真正知识。因此,我选择“不执行合并检查”继续执行操作,否则将在前提条件下失败
  • 希望IntelliJ能够提供一个选项来自动管理这些分支。或者它已经存在,而我却错过了。无论如何,这种方法为我节省了一些时间。

    Git在Git项目下的.Git文件夹中跟踪其本地和远程存储库的详细信息

    要删除本地孤立分支,请转到:

    .git->refs->heads(在此位置可以看到所有本地分支)

    然后删除不需要的分支

    注意:如果你正在使用mac os,也要清理你的垃圾箱


    这将一次清除本地孤立分支。

    要使删除大量分支的痛苦稍微减轻一点,您可以转到git工具窗口(热键Alt+9)。在“分支”面板中,可以选择多个分支并删除它们


    因此,您不必逐个删除它们。但是请注意,不要删除仍然感兴趣的分支,因为您无法看到到远程分支的连接,或者如果在该视图中删除了远程分支。

    在IntelliJ中它没有任何作用:本地分支仍然存在。实际上,它在IntelliJ IDEA中没有任何作用。它在存储库中执行。IntelliJ插件必须从底层的
    git
    存储库中刷新其信息,并且可能