清理 Git 分支的最佳偷懶法:來自 CIA 外洩文件的一行指令

本篇文章更新時間: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":過濾掉當前分支與 master
  • xargs -n 1 git branch -d:安全地逐一刪除每個分支

隨著業界從 master 改用 main,作者也提供了更新版:

git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d

這行指令更實用的地方是,你可以依照團隊習慣把 developrelease 等分支加入排除名單裡。

最後,作者把它做成 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 會乾淨得像新的一樣。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon