業務場景
在使用Git進行版本管理的過程中, 通常擁有以下規範:
- 主分支: main
- 開發分支: dev
- 功能分支: feature-*
- 修復BUG分支: fix-*
- ...
例如筆者需要完成登入和修改密碼功能, 那在筆者的電腦中, 就會存在這樣兩個分支:
- feature-login
- feature-changePassword
功能少還好說, 但如果隨著版本迭代和需求更新, 本地已完成的分支會越來越多, 甚至可能會出現分支名稱重複的問題
如何規範的去處理這種問題呢?
方案
版本管理
在處理本地分支的問題上, 首先要明確何時該對其進行刪除:
- 已推送到遠端倉庫
- 已提交PR
- 已被管理員合併到開發分支(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
是把輸入作為後一個命令的引數
怎麼樣, 如果你正確理解了這兩個命令, 是不是批量刪除分支的邏輯就異常清晰了呢?
總結
在學習過程中, 希望小夥伴們可以抓準知識點或技巧的核心內容, 花一分鐘拿來用和花三分鐘弄清楚為什麼並不衝突
我們的人生也不差這兩分鐘, 戒驕戒躁