在工作中,我們正在使用主題分支,這些主題分支在某個時間點被集成到幾個(3)主分支中。 現在我想從我的遠程存儲庫中刪除已完全集成到主分支中的所有主題分支。如果這是不可能的,檢索已整合的本地分行清單也可以。如何刪除已經集成的所有遠程git分支?
回答
編輯:
從skalee的評論最佳答案:
git branch -a --merged remotes/origin/master | grep -v master | grep "remotes/origin/" | cut -d "/" -f 3- | xargs -n 1 git push --delete origin
老答案:
git push --delete remote topicbranch
或
git push remote :topicbranch
給予新的分支,將一些與git branch --merged master
您可以
git branch --merged master | grep -v master | xargs -n 1 git push --delete origin
自卸這樣做是一氣呵成,在一個腳本調用「乾淨」的,如果你發現你這樣做經常。
如果你想刪除所有的遠程分支,不僅有那些有本地對應的分支:'git branch -a --merged remotes/origin/master | grep -v master | grep「remotes/origin /」| cut -d「/」-f 3 | xargs -n 1 git push --delete origin'。另外,我建議使用'remotes/origin/master'代替普通的'master'來排除你在本地合併但尚未推送的東西,以防最終忘記或決定不推送。 – skalee
@skalee謝謝!除了當分支在文件夾中時,這對我有效 - 改用'cut -d「/」-f 3-'。我還必須添加一個'grep -v develop'來停止它試圖刪除我的開發分支。 – antonyh
'xargs -n 1'太慢了,如果你有很多分支使用'xargs -n 20'代替。 – mozillazg
如果您想從原點庫中刪除遠程分支:
git branch -r --merged develop | egrep -iv '(master|develop)' | sed 's/origin\///g' | xargs -n 1 git push --delete origin
這也有助於消除叉後的所有上游分支 – ianstarz
這是真正正確的答案:),因爲其他人似乎無法刪除包括斜槓,我們使用(混合雖然)功能/我的功能, bugfix/my-feature –
這看起來相當不錯,除了使用origin/master或origin/develop作爲可以刪除某些東西的標準之外,這一點非常重要。僅僅因爲將它合併到本地版本的主分支中而從遠程刪除某些東西是不行的,那麼您可能忘記將該分支推送到遠程,這可能意味着從源刪除未分支的分支。 –
這些都是我使用刪除一切融入origin/master
的命令。基本上,我從GitHub中刪除了合併到master
的所有分支。
git remote update -p &&
git branch -r --merged origin/master |
grep origin |
grep -v master |
cut -d"/" -f2- |
xargs git push origin --delete
只適用於Powershell和Windows用戶。
git branch -r --merged | findstr /v "origin/master" | %{git push origin --delete $_.Trim().Substring(7)}
- 1. 如何刪除git遠程分支
- 2. 刪除已經承諾的git分支
- 3. git遠程分支已刪除,但仍出現在'分支-a'
- 4. 刪除Git中的遠程分支
- 5. git:刪除奇怪的遠程分支
- 6. 用-rD刪除git分支而不刪除遠程svn分支
- 7. 如何清理已經合併的遠程git分支?
- 8. 如何刪除遠程git分支「正常」,又名a.a.更新所有用戶的遠程分支列表?
- 9. 如何用TortoiseGit刪除已經合併的本地Git分支?
- 10. 刪除遠程git存儲庫的所有遠程跟蹤分支
- 11. Git刪除不在遠程/遠程的遠程分支
- 12. 刪除git遠程分支提交
- 13. 無法刪除遠程git分支
- 14. 使用JGit刪除遠程Git分支
- 15. Git - 無法刪除遠程分支
- 16. Git別名來刪除遠程分支
- 17. Git:刪除遠程分支不同步?
- 18. Git:恢復已刪除的遠程分支
- 19. 恢復Git中已刪除的孤兒遠程分支?
- 20. 在Bitbucket上從遠程恢復已刪除的分支(git)
- 21. 所有非遠程分支的git等價於所有非遠程分支?
- 22. 刪除本地「遠程分支」而不刪除遠程分支?
- 23. Git的 - 刪除遠程分支,在該分支名稱空間
- 24. 如何刪除遠程的主分支?
- 25. 如何刪除遠程分支點的
- 26. 如何批量刪除多餘的遠程git分支?
- 27. 如何刪除本地git存儲庫中的遠程分支?
- 28. git流程分支已經分歧
- 29. GIT如何刪除分支,如果遠程丟失
- 30. 有一個遠程的Git分支卻敵不過當地的分支機構,如何刪除遠程一個
謝謝,'git branch --merged'看起來不錯。不幸的是,它不能在整合過程中重新分配的分支機構正常工作..但是,至少*我的shitload(160)分支機構被列爲超級安全刪除。 – ThiefMaster
重新構建的分支是棘手的......這可能是可能的,但它至少需要在分支點之後拉取修訂列表,然後沿着主分支尋找修補程序簽名的shellscript ...我沒有意識到這個預煮解決方案。 –
這是太棒了,雖然我確實碰到了小障礙。我用'/'命名我的分支,例如我的一個分支名稱可能是'sf/correct-typo-7'。由於** cut **上的'-f 3'參數,此分支名稱將被截斷爲'sf'。將參數改爲'-f 3-',可以解決這個問題,並用任意數量的斜線處理分支。 –