Git批量刪除分支| 8月更文挑戰

Houtaroy發表於2021-08-02

業務場景

在使用Git進行版本管理的過程中, 通常擁有以下規範:

  • 主分支: main
  • 開發分支: dev
  • 功能分支: feature-*
  • 修復BUG分支: fix-*
  • ...

例如筆者需要完成登入和修改密碼功能, 那在筆者的電腦中, 就會存在這樣兩個分支:

  • feature-login
  • feature-changePassword

功能少還好說, 但如果隨著版本迭代和需求更新, 本地已完成的分支會越來越多, 甚至可能會出現分支名稱重複的問題

如何規範的去處理這種問題呢?

方案

版本管理

在處理本地分支的問題上, 首先要明確何時該對其進行刪除:

  1. 已推送到遠端倉庫
  2. 已提交PR
  3. 已被管理員合併到開發分支(dev)

在確定執行完上述操作後, 本地分支即可進行刪除

刪除分支

刪除分支使用git branch -D 分支名稱即可

例如要刪除登入功能分支, 在命令列輸入: git branch -D feature-login

批量刪除分支

手動一個個輸入命令去刪除分支, 在分支較多的情況下顯然變成了體力勞動

筆者認為這不是一個程式設計師的風格, 程式設計師應該是個'懶人'

和linux相同, 我們可以使用管道符號與xargs完成這項工作:

git branch | grep 'feature-*\|fix-*' | xargs git branch -D

其實這是三個命令:

  • git branch: 列出全部分支
  • grep 'feature-*\|fix-*': 篩選以'feature-'或'fix-'開頭的分支
  • xargs git branch -D: 強行刪除分支

其中最核心的命令是|xargs

|的作用是把前一個命令的輸出作為後一個命令的輸入

xargs是把輸入作為後一個命令的引數

怎麼樣, 如果你正確理解了這兩個命令, 是不是批量刪除分支的邏輯就異常清晰了呢?

總結

在學習過程中, 希望小夥伴們可以抓準知識點或技巧的核心內容, 花一分鐘拿來用和花三分鐘弄清楚為什麼並不衝突

我們的人生也不差這兩分鐘, 戒驕戒躁

相關文章