分支、標籤與遠端
「分支」(⌘4)把分支、標籤、遠端、Stash、worktree 等物件收在同一列,用分段控制元件切換。每類物件都支援搜尋框過濾。
分支
- 本地與遠端分支分組顯示,當前分支與上游 ahead / behind 數量直接標出;
- 複製分支名或託管平臺連結;
- 與當前分支比較;
- 檢視哪些分支包含某個提交;
- 重新命名分支;
- 刪除本地分支:只會刪除已完全合併的分支,被 worktree 檢出的分支會跳過;未合併的分支需要先合併或手工處理;
- 多選刪除遠端分支;「刪除分支及遠端分支」會先刪本地,成功後再刪遠端。
合併
合併前可以選預設行為、--no-ff 或 squash。
執行前會先用 git merge-tree 預覽:列出合併基點、雙方 ahead / behind 數量與衝突路徑,不寫工作區、不寫索引、不動任何分支。看到衝突可以先處理,再真正合並。合併衝突的處理見衝突;進行中的合併可以從橫幅繼續或中止。
標籤
- 建立輕量標籤、附註標籤或簽名標籤;
- 驗證 GPG / SSH 簽名,結果顯示為有效、無效或未簽名;
- 重新命名標籤;
- 推送單個標籤或全部標籤;
- 多選刪除本地標籤;遠端標籤需要單獨刪除;
- 複製標籤連結,或在託管平臺開啟。
遠端
- 新增、編輯、重新命名、刪除遠端;重新命名會同步遠端跟蹤分支與上游配置;
- 清理遠端跟蹤分支:刪除遠端已不存在的分支對應的引用,本地分支保留;
- 從任意遠端分支拉取,把 HEAD 釋出為指定遠端分支;
- 推送時選擇具體遠端。
所有的出站路徑都會經過推送預檢,見同步。
Stash
- 建立:可寫說明,可包含未跟蹤檔案,也可只暫存已暫存的內容;
- 部分 stash:把選中片段或單個檔案移入新的 stash,其餘改動留在工作區;
- 應用或彈出時可以同時恢復原來的暫存狀態;
- 從 stash 恢復單個檔案或選中片段,索引與 stash 條目保持不變;
- 從 stash 建立分支;
- 檢視 stash 中某個檔案的版本;
- 多選刪除 stash,每條都會先寫恢復快照;
- 按說明過濾 stash 列表。
應用或彈出時如果發生衝突,stash 條目會保留,不會丟失。
Worktree
- 從 HEAD 或任意提交建立工作樹,可同時新建分支,也可以游離 HEAD;
- 在標籤頁裡開啟連結工作樹;
- 鎖定、解鎖、移動、修復路徑;
- 清理已失效的條目;
- 多選移除工作樹。
路徑不存在時列表會標出「路徑不存在」,可以在修復裡填入移動後的實際路徑。
Bisect
- 從某條提交開始 bisect,把它標記為 bad;
- 手動標記 good / bad / skip,橫幅顯示剩餘步驟;
- 自動 bisect:給定範圍與命令,Git 在每個候選提交上執行它,退出碼 0 表示 good、1–127 表示 bad、125 表示跳過;
- 取消執行會停止命令並保留可繼續的範圍,不會自動重置。
自動 bisect 會在每個檢出的提交上執行你給的命令,只執行你信任的程式碼。
LFS
- 檢視與編輯 LFS 跟蹤模式,提交
.gitattributes後團隊共享; - 拉取當前倉庫缺失的 LFS 物件;
- 鎖定與解鎖檔案,支援檢視持有人並強制解鎖;
- 倉庫健康檢查會提示 git-lfs 缺失或仍是指標的檔案。
子模組
- 新增子模組,指定 URL、路徑與可選分支;
- 更新全部子模組,或更新到遠端分支;
- 合併遠端更改,保留子模組裡的本地提交;
- 同步
.gitmodules中的 URL; - 移除子模組:去初始化並刪除,
.git/modules下的物件留給 Git 清理; - 在新標籤頁裡開啟子模組倉庫。
子模組指標變更在 diff 裡單獨顯示,可以在巢狀倉庫中檢視它的歷史。
稀疏檢出
- 以 cone 模式維護目錄列表;
- 應用後,模式之外已跟蹤的檔案會從工作區移除,但仍保留在 Git 中;
- 關閉稀疏檢出會把所有已跟蹤檔案重新檢出。
操作前需要確認,確認框裡會寫明會影響多少個檔案。
Hooks
- 列出倉庫裡已安裝的 hooks,可編輯內容、啟用或停用;
- 從內建示例安裝;
- 提交遇到 hook 失敗時,可以在確認後跳過 hook 繼續提交。
Hook 由 Git 執行,應用只負責讀寫檔案與觸發提交。
最後更新於