本篇文章更新時間:2026/02/21
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
用一行指令讓 Git 分支立即變清爽
從 CIA 外洩文件學到的極簡分支管理術
編輯前言:這篇文章有趣的地方在於,它不是教你什麼新框架或 DevOps 魔法,而是教你如何用一行指令解決所有工程師都有的痛點:滿坑滿谷的 Git 分支。
核心觀點 (Key Takeaways)
- Git 專案隨著時間會累積大量已合併但未刪除的本地分支。
- CIA 外洩的開發者文件中提供了一行指令,可自動清除這些已合併的分支。
- 透過更新版的指令或 git alias,可根據專案習慣自動化這件工作。
深入解析
這篇文章原文來自 Spencer 的部落格,標題是《Cleaning up merged git branches: a one-liner from the CIA's leaked dev docs》。作者從 2017 年 WikiLeaks 公開的 Vault7 檔案裡,意外看到 CIA 內部開發者文件的一個小技巧,卻是他至今仍放在 ~/.zshrc 裡的寶貝。
我們都知道,repo 只要活久一點,git branch 就會被塞滿過去的 feature、hotfix、試驗分支,而手動逐個刪除非常麻煩。
原文引用了 CIA 的這行經典指令:
git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d
這段指令的設計其實非常直觀:
git branch --merged:列出所有已經合併的本地分支grep -v "*|master":過濾掉當前分支與 masterxargs -n 1 git branch -d:安全地逐一刪除每個分支
隨著業界從 master 改用 main,作者也提供了更新版:
git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d
這行指令更實用的地方是,你可以依照團隊習慣把 develop、release 等分支加入排除名單裡。
最後,作者把它做成 alias:
alias ciaclean='git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d'
之後只要在 repo 裡打一行:
ciaclean
分支清單馬上從 40 條變回乾淨俐落。
筆者心得與啟發
對我來說,這篇文章的價值不在於指令本身,而是提醒了我:開發流程裡很多小痛點,其實都能靠幾行腳本徹底改善。尤其是像 Git 分支這種工作,雖然不會影響產品,但會悄悄增加心智負擔。
我特別欣賞作者提到的那句話:「小東西,但每週能悄悄省幾分鐘,讓我更有條理。」這讓我想到,工程師不該只追求新的工具或架構,有時候一個好的 alias 才是真正能提升效率的武器。
如果你和我一樣常常在分支清單裡迷路,那不妨把這段指令加進你的 shell config。下一次部署完、確認所有 PR merge 之後,打一行 ciaclean,你的 repo 會乾淨得像新的一樣。
