簡體   English   中英

GIT:刪除沒有本地跟蹤分支的遠程分支

[英]GIT: remove remote branches with no local tracking branch

讓我們說git branch -a輸出這樣的東西:

  • 一種
  • C
  • *主
  • 遙控器/產地/ A
  • 遙控器/來源/ B
  • 遙控器/來源/ C
  • 遙控器/來源/主
  • 遙控器/產地/ X
  • 遙控器/產地/ Y
  • 遙控器/產地/ Z

粗體是遠程存儲庫中的那些分支(X,Y,Z),但我還沒有檢查過它們,我甚至不想這樣做,它們與我沒有參與的項目有關。

是否有命令刪除沒有本地跟蹤分支的所有遠程分支( 保存在MY存儲庫中的遠程分支,而不是遠程中的實際遠程分支 )?

編輯 :我打算刪除保存在我的存儲庫中的遠程分支,顯示遠程分支的存在。 我不想刪除遙控器中的實際分支。

編輯2 :對mattmilten的評論澄清

您可以使用git pull重新創建所有遠程分支,但我並不總是git pull

我經常只是git fetch origin master ABC ,然后合並或改組或做任何我想要的分支主,A,B或C.

點是,每當我“git pull”(由於某種原因),我不想創建所有分支,看起來我沒有簡單的選項可以在之后刪除它們。

不,這是不可能的。 有關(所有)分支的信息是您的倉庫的一部分,並且在創建新克隆時將始終復制。 您需要忽略這些分支或只是運行git branch以僅列出您的本地分支。

如果刪除有關它們存在的信息,您將如何在以后檢索遠程分支?

我有同樣的問題,但在不同的情況下。 我刪除了一個本地分支實驗1 我先忘了git branch --unset-upstream ,所以我還有一個遠程跟蹤分支。 分支實驗1在遠程后被刪除。

后來,當我運行git branch -a ,它會一直顯示在輸出中作為remotes/origin/experiment1 git branch --unset-upstreamgit branch --delete都不會刪除它,因為本地分支已經消失了。 將其作為origin / experiment1而不是experiment1引用也不起作用。

所以這就是我做的:

  1. cd .git/refs/remotes/origin
  2. rm experiment1

並且它不再顯示在輸出和正常的Git同步命令之后按預期工作。

我正在添加這個答案,因為這是互聯網搜索“git刪除沒有本地分支的遠程跟蹤分支”的熱門話題。 此外,這個問題與“刪除跟蹤分支不再在遠程”問題上的不同重復的。 如果我寫自己的問題,這個答案回答,那么這個問題就是這個問題的重復。

暫無
暫無

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

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