MarkNode 內建 Git 支援,讓你不必離開編輯器就能追蹤變更、提交,並與遠端同步。
自動偵測儲存庫
當你以專案方式開啟資料夾時,MarkNode 會檢查其中是否包含 Git 儲存庫。若找到,Git 功能會自動啟用——無須任何設定。若該資料夾不是 Git 儲存庫,Git 功能則維持隱藏。
狀態列
視窗底部的狀態列可讓你一眼掌握目前的 Git 狀態:
- 分支名稱 — 目前簽出的分支
- 變更數量 — 已修改、新增或刪除的檔案數。此數字可點擊:按一下即可開啟原始碼控制面板。
分支指示器會即時更新。若你從終端機或其他工具切換分支,狀態列會反映該變更,無須重新載入。至於領先/落後的提交數以及所有 Git 操作,請使用下方說明的原始碼控制面板。
原始碼控制面板
所有 Git 操作都集中在原始碼控制面板——這是一個側邊欄檢視,其設計沿襲自 VS Code 等編輯器中熟悉的原始碼控制模式。你可以從導覽列的原始碼控制圖示開啟它(該圖示位於最近檔案之後,且僅在專案為 Git 儲存庫時才會出現),或在 macOS 上按 Cmd+Shift+K、在 Windows 與 Linux 上按 Ctrl+Shift+K。
此面板將一切集中於同一處,且不會有強制回應對話框擋住你的編輯器:
- 標頭 — 目前的分支名稱,以及相對於遠端的領先/落後提交數
- 已變更的檔案 — 分為已暫存的變更與變更(未暫存),每一項會顯示檔案名稱、路徑與狀態字母
- 內嵌操作 — 將滑鼠移到檔案上即可暫存或取消暫存;變更標頭提供全部暫存操作,已暫存的變更標頭則提供全部取消暫存操作
- 提交區 — 訊息輸入框與提交按鈕,在你已暫存檔案並寫好訊息後即會啟用
- 工具列 — 提取、推送與重新整理操作
檔案狀態指示
檔案總管會為每個檔案的名稱上色,以標示其 Git 狀態:
| 狀態 | 意義 |
|---|---|
| 已修改 | 檔案有尚未提交的變更 |
| 已新增 | 已暫存的新檔案 |
| 未追蹤 | 尚未暫存的新檔案 |
| 已刪除 | 已被移除的受追蹤檔案 |
| 已重新命名 | 已被移動或重新命名的受追蹤檔案 |
| 衝突 | 檔案有待解決的合併衝突 |
狀態會沿著資料夾樹狀結構向上傳遞——若資料夾內任一檔案有變更,上層資料夾的名稱也會上色(採用優先度最高的狀態)。這讓你無須展開每個目錄,就能找出專案中有變動的區域。
提交變更
提交是在原始碼控制面板中內嵌完成的——沒有另外的對話框:
- 將滑鼠移到各個檔案上並點擊暫存操作,以暫存你想納入的檔案;或使用區段標頭中的全部暫存。
- 在訊息輸入框中撰寫提交訊息。
- 點擊提交。
MarkNode 會針對你的本機儲存庫執行提交,清空訊息輸入框,並更新檔案清單與狀態列的變更數量。若提交失敗——例如被 pre-commit 掛鉤拒絕——面板會顯示錯誤,並保留你的提交訊息,方便你再試一次。
提取與推送
推送與提取操作位於原始碼控制面板的工具列中。
- 提取會從遠端擷取最新的提交,並將其合併到你目前的分支
- 推送會將你的本機提交送到遠端
若推送被拒絕(例如,遠端有你本機所沒有的提交),你必須先提取並解決任何衝突,才能再次推送。
在 MarkNode 之外變更的檔案
若你從終端機或其他編輯器修改檔案,MarkNode 會偵測到變更並自動重新載入受影響的檔案。你不需要手動重新整理編輯器或檔案總管。
這同樣適用於 Git 操作——執行 git checkout、git merge 或任何會修改工作樹檔案的指令,都會立即反映在編輯器中。