git批量刪除已合並的遠程分支


轉載自joshua317博客  https://www.joshua317.com/article/22

先說問題:

目前開發的項目比較多,分支存在也比較多,於是就想把已經合並的分支刪掉,開始用gitlab的頁面端刪除,但是這樣比較耗時耗力,於是准備用git命令處理git push origin --delete branch-name

但是出現了這樣的問題

remote: GitLab: You can only delete protected branches using the web interface.

再說原因

根據報錯信息,你只能使用網頁接口對受保護的分支進行刪除

經過排查,分析發現主要問題是設置了受保護的分支

然后解決方法

  1. 打開gitlab,找到對應的項目

  2. 點擊左側settings的respository

  3. 右側Protected Branches 取消所設置的保護狀態

  4. 然后執行刪除遠程分支命令git push origin --delete branch-name 即可

進階:批量刪除遠程分支

## 先執行遠程獲取
git fetch -p
​
# grep -v 用於排除關鍵字,檢查此命令輸出的branch名字是否合理,調整次命令直至篩選出需要刪掉的branch
# "git branch --remote"每行輸出以“origin/”開頭,命令"cut -b 10-"用於刪除此前綴
git branch --remote --merged origin/master | grep -v 'master' | cut -b 10- | xargs
​
# 執行遠程刪除,務必確保要刪除的分支是可以刪除的
git branch --remote --merged origin/master | grep -v 'master' | cut -b 10- | xargs git push --delete origin

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM