🤡 批量刪除git分支
在日常開發中我們每做一個需求就會創建一個git功能分支,時間久了本地和線上的分支就會被累計很多。那麼此時有一個批量刪除git分支的工具就顯得尤為重要。GBKILL正是為了解決這一需求也生的工具,讓你更加高效的刪除git分支
該工具將列出項目中的git分支列表,然後您可以批量選擇需要刪除的git分支
🤡 安裝
您實際上不需要安裝它即可使用它!只需使用以下命令:
$ npx gbkill
或者你可以安裝它:
$ npm i -g gbkill
🏕️ 用法
在你的terminal下輸入gbkill(目前不兼容Windows終端的Git)。gbkill會執行git命令掃描你當前項目下的git分支並且在列表中展示出來
| Key | Description | |
|---|---|---|
| Space | 按空格鍵執行已合併分支刪除 (推薦: 防止誤刪除) |
|
| Tab | 按Tab鍵執行`已合併 \ |
未合併分支刪除 (**權限比Space鍵高`**) |
| RightArrow | 按->鍵執行`打開 \ |
關閉`批量選擇分支功能 |
| ↓ | 按↓ 移動選擇分支 |
|
| ↑ | 按↑ 移動選擇分支 |
提示
- gbkill界面上的
merge列表顯示yes或No是通過git branch --merged <name>判斷的。你可以通過執行gbkill --merged <name>指定合入的分支名稱- 當
gbkill中merge狀態為yes時,但你執行該分支刪除時出現NO_FORCE...fully merged。原因:該分支代碼沒有合併到當前聚焦分支。需要強制刪除- 當執行
gbkill --sync時,會先刪除目標分支的遠程分支再刪除本地分支
🏖️ 參數
gbkill的可配置參數,部分配置參數會被緩存到/用户主目錄/.gbkill文件中全局共享
| Argument | Description | Cache |
|---|---|---|
| --force | 強制刪除分支, 等價於git branch -D \<name\> (慎重: 會將本地commit的改動刪除掉) |
否 |
| --sync | 是否同步刪除遠程分支 | 否 |
| --merged \<name\> | 指定用於判斷某個分支是否已經被合併的分支名稱 (git branch --merged \<name\>) |
是 |
| --lock \<names..\> | 鎖定某些分支將會在列表隱藏,數據會被累加而不是替換(防止誤刪,保護某些分支) |
是 |
| --unlock \<names..\> | 解鎖被--lock鎖定的分支 |
是 |
<!-- | --submodule | 是否展示 git 子模塊的分支列表 | 否 | -->
<!-- | --language \<name\> | 指定 GBkill 語言 ZH\|EN | 是 | -->
🏝️ Git分支狀態
分支狀態對應的描述
| Status | Description | Color |
|---|---|---|
| NONE | 分支處於正常狀態 | |
| DELETING | 分支正在刪除 | 🌍 |
| DELETED | 分支已刪除 | 🟢 |
| FAILED | 分支刪除失敗 | 🔴 |
| NO\_MERGED | 該分支未合併到name分支(--merged <name>) |
🟣 |
| NO\_FORCE | 該分支需要強制刪除git branch -D name(--force) |
🟡 |
| NO\_SYNC | 同步刪除遠程分支失敗 | 🟠 |
🏞️ 已知問題
⚠️ 目前不支持Windows終端的Git,工具受限於ink,後續查找替代方案。請使用CMD、Vscode 終端的 Git...終端
⛺ 其它
- 該工具會
持續優化, 如果你有更好的交互行為或者功能請求都可以給我提pr或者issue - 感謝您使用該工具,也期待你的
issue或者pr
<!-- 請勿刪除: EMO 圖形地址 -->