亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除跟蹤分支不再在遠程

刪除跟蹤分支不再在遠程

Git
蠱毒傳說 2019-09-06 17:19:04
是否有一種簡單的方法可以刪除遠程等效不再存在的所有跟蹤分支?例:分支機構(本地和遠程)主產地/主產地/漏洞修復,一個產地/漏洞修復-B產地/漏洞修復-C在本地,我只有一個主分支?,F在我需要處理bug-fix-a,所以我檢查它,處理它,并將更改推送到遠程。接下來我用bug-fix-b做同樣的事情。分支機構(本地和遠程)主漏洞修復,一個漏洞修復-B產地/主產地/漏洞修復,一個產地/漏洞修復-B產地/漏洞修復-C現在我有本地分支機構master,bug-fix-a,bug-fix-b。Master分支維護者將我的更改合并到master中并刪除他已經合并的所有分支。那么現在的狀態是:分支機構(本地和遠程)主漏洞修復,一個漏洞修復-B產地/主產地/漏洞修復-C現在我想調用一些命令刪除分支(在本例中為bug-fix-a,bug-fix-b),這些分支不再在遠程存儲庫中表示。它會像現有的命令git remote prune origin,但更像是git local prune origin。
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

命令之后


git fetch -p

運行時刪除遠程引用


git branch -vv

它將顯示為“已離開”作為遠程狀態。例如,


$ git branch -vv

  master                 b900de9 [origin/master: behind 4] Fixed bug

  release/v3.8           fdd2f4e [origin/release/v3.8: behind 2] Fixed bug

  release/v3.9           0d680d0 [origin/release/v3.9: behind 2] Updated comments

  bug/1234               57379e4 [origin/bug/1234: gone] Fixed bug

因此,您可以編寫一個簡單的腳本來刪除已經轉移的本地分支:


git fetch -p && for branch in `git branch -vv | grep ': gone]' | awk '{print $1}'`; do git branch -D $branch; done



查看完整回答
反對 回復 2019-09-06
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

這些答案中的大多數實際上并未回答原始問題。我做了一堆挖掘,這是我找到的最干凈的解決方案。這是一個稍微更全面的答案:

  1. 查看您的默認分支。平時git checkout master

  2. 跑 git fetch -p && git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -d

說明:

通過修剪您的跟蹤分支然后刪除顯示它們“消失”的本地分支來工作git branch -vv

筆記:

如果您的語言設置為英語以外的其他語言,則需要更改gone為相應的單詞。不會觸及僅限本地的分支。已在遠程刪除但未合并的分支將顯示通知但不會在本地刪除。如果你想刪除那些以及更改-d-D。


查看完整回答
反對 回復 2019-09-06
  • 3 回答
  • 0 關注
  • 804 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號