分支、標籤與遠端
「分支」(⌘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 執行,應用只負責讀寫文件與觸發提交。
最後更新於