轉載自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.
再說原因
根據報錯信息,你只能使用網頁接口對受保護的分支進行刪除
經過排查,分析發現主要問題是
然后解決方法
-
打開gitlab,找到對應的項目
-
點擊左側settings的respository
-
右側Protected Branches 取消所設置的保護狀態
-
然后執行刪除遠程分支命令
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