Git之删除本地无用分支
隨著項目迭代越來越久,本地會創建一系列分支,太多了有時候找起來也不方便,就想將一些已經刪除的遠程分支對應的本地分支清理掉 (我們會對gitlab上已經merged的分支定期清理,畢竟圖形化界面操作起來也方便)
清除已刪除遠程分支
git fetch -p其作用就是如果你通過git fetch 獲取了遠程分支,后面遠程的分支又被刪除了,就可以通過該命令來刪除那么已經被清除的遠程分支;如果你在獲取遠程分支的時候同時創建了一個本地分支,那么該命令只能幫你解除本地分支和遠程分支的關聯性,并不會將本地分支也刪除掉
git remote prune origin上述命令的效果同git fetch -p
那么想要真正刪除這些煩人的無用本地分支要怎么做呢?
逐個刪除(最笨)
通過git branch 命令可以查看所有的本地分支,然后通過git branch -d命令一個個刪除
git branch git branch -d <branchName>git branch -d 刪除分支,會在刪除前檢查merge狀態,避免誤刪沒有合并的分支。
git branch -D 是git branch --delete --force的簡寫,它會強制刪除該分支。
如果想要刪除遠程分支以及追蹤分支需使用: git push --origin -delete branch
批量刪除
/d/IdeaProjects/my-service (master) $ git branch --merged |grep -v "\*" | grep -v "release" > d:/branch.txt/d/IdeaProjects/my-service (master) $ xargs git branch -d < d:/branch.txt Deleted branch feature_dev2 (was 0e24efa).通過第一個命令將所有本地的且已合并到當前分支的分支寫入到branch.txt(排除release分支和當前分支) – 建議在release或者master分支執行
然后根據獲取到的branch執行git branch -d命令刪除
上述操作命令簡單明了,還可以根據獲得到的branch.txt自行刪除自己想要保留的分支
可以簡化成如下命令,不過要注意不要刪錯了分支:
git branch --merged |grep -v "\*" | grep -v "release" |xargs git branch -Dxargs 命令配合 | 使用,將前一條指令的輸出流向會作為后一條指令的參數輸入。
還可以寫成shell腳本
c函數
import osdef delete_not_merged_branch():result = os.popen("git branch --merged")git_branches = result.read()for git_branch in git_branches.splitlines():if git_branch != '* release':print(git_branch)os.system('git branch -d ' + git_branch)參考資料:
what-does-git-fetch-p-means
remove-tracking-branches-no-longer-on-remote
總結
以上是生活随笔為你收集整理的Git之删除本地无用分支的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用drawio进行画图真的很方便(WE
- 下一篇: spring BeanUtils.cop