簡體   English   中英

EGit:修剪遠程回購中已刪除的遠程跟蹤分支

[英]EGit: Pruning Remote Tracking Branches that have been Deleted on the Remote Repo

我正在與開發團隊一起使用EGit(用於Eclipse)。 我們已經為新工作創建了許多featurefix分支,然后在完成后將它們合並到我們的release分支中。 在它們合並到正確的release分支之后,通常會刪除這些臨時分支以保持遠程倉庫清理。

我注意到當這些分支被刪除時,我將從我們的遠程倉庫中取出,但是EGit不會從我的遠程跟蹤視圖中刪除它們。 我的遠程跟蹤視圖仍將顯示已刪除的分支,這些分支不再位於遠程倉庫上(並且沒有跡象表明它們已被刪除)。 我的遠程跟蹤視圖反映實際倉庫的唯一方法(我發現)是手動刪除所有遠程跟蹤分支(突出顯示和刪除),然后再次獲取它們。 這似乎非常迂回,特別是因為您可以通過命令行修剪遠程分支,如下所示:

git remote prune origin

基本上,我想知道的是,如果有一種方法可以配置/使EGit在遠程跟蹤分支發生變化時執行此修剪(在我獲取之后)。 這是我origin遠程上的當前提取配置:

在此輸入圖像描述

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

您可以在JGit中 查看Gerrit代碼審查中引入的所述功能(並在此處進行測試

git config提到的條目fetch.prune可以添加到您的Egit配置中:

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


原始答案(2013年3月)

當遠程跟蹤分支發生變化(我獲取后)時,EGit執行此修剪。

從來沒聽說過。

更一般地,在使用掛鈎無法在客戶端進行每次提取之后執行任何操作。
它已被請求 ,並且僅在服務器端實現了一點: 鈎子post-upload (在獲取后運行),但出於安全原因在多用戶環境中被刪除。

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

您可以將fetch.pruneremote.<yourremotename>.prune密鑰添加到gitconfig並將其設置為true 當您使用EGit進行提取時,這將自動修剪在中央存儲庫中刪除的分支。

在git-Settings中設置fetch.prune = true可以解決問題。 如果在“存儲庫設置”中執行此操作,則可以為每個存儲庫區分此設置。 如果要對每個存儲庫使用此設置,最好在用戶設置中輸入fetch.prune = true。 因此,您不必為每個存儲庫重復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM