EGit:修剪远程回购中已删除的远程跟踪分支

Ste*_*yle 26 eclipse git git-remote egit

我正在与开发团队一起使用EGit(用于Eclipse).我们为新工作创建了很多featurefix分支,然后release在完成后将它们合并到我们的分支中.在它们合并到正确的release分支之后,通常会删除这些临时分支以保持远程仓库的清洁.

我注意到当这些分支被删除时,我将从我们的远程仓库中取出,但是EGit不会从我的远程跟踪视图中删除它们.我的远程跟踪视图仍将显示已删除的分支,这些分支不再位于远程仓库上(并且没有迹象表明它们已被删除).我的远程跟踪视图反映实际仓库的唯一方法(我发现)是手动删除所有远程跟踪分支(突出显示和删除),然后再次获取它们.这似乎非常迂回,特别是因为您可以通过命令行修剪远程分支,如下所示:

git remote prune origin

基本上,我想知道的是,如果有一种方法可以配置/使EGit在远程跟踪分支发生变化时执行此修剪(在我获取之后).这是我在origin遥控器上的当前提取配置:

在此输入图像描述

Von*_*onC 39

更新2014年3月:正如cheshire回答所提到的,EGit 3.3补充说了修剪功能.

您可以在JGit中查看Gerrit代码审查中引入的所述功能(并在此处进行测试)

提到的条目fetch.prunegit config可以添加到您的Egit配置中:

https://wiki.eclipse.org/images/f/f8/RepositoryConfigurationSettings.png


原始答案(2013年3月)

当远程跟踪分支发生变化(我获取后)时,EGit执行此修剪.

从来没听说过.

更一般地,在使用挂钩无法在客户端进行每次提取之后执行任何操作.
它已被请求,并且仅在服务器端实现了一点:钩子post-upload(在获取后运行),但出于安全原因在多用户环境中被删除.

  • @StevenByle参见EGit 2.3评论的幻灯片10:https://bugs.eclipse.org/bugs/attachment.cgi?id = 226938.`prune`不受支持. (2认同)

che*_*ire 11

最近的EGit 3.3版本引入了修剪支持.

您可以将一个fetch.prune或一个remote.<yourremotename>.prune键添加到gitconfig并将其设置为true.当您使用EGit进行提取时,这将自动修剪在中央存储库中删除的分支.