暫存與提交變更
建立目標明確的提交並提供清楚的說明,有助於您與團隊了解程式碼庫的歷史紀錄。VS Code 提供整合式的 Git 工具,用於暫存變更與建立提交,並支援對要包含的變更進行細部控制。
本文涵蓋 VS Code 中的暫存與提交工作流程,從 Git 的兩步驟程序,到使用 AI 輔助產生提交訊息,以及在提交前檢閱變更。
Git 工作流程
Git 使用兩步驟程序來儲存您的工作:暫存與提交。當您修改檔案時,Git 會追蹤這些變更,但不會自動將其包含在您的下一次提交中。暫存讓您可以選擇在每次提交中包含哪些變更。
您可以將暫存視為準備工作快照。您可以一次暫存所有變更以進行完整提交,或暫存特定檔案甚至個別行,以建立目標明確、邏輯清晰的提交,這對於日後檢閱與理解都更容易。
檢視變更
「原始檔控制」檢視 (⌃⇧G (Windows, Linux Ctrl+Shift+G)) 是您管理 Git 儲存庫中變更的中心。變更會根據其暫存狀態分為兩個區段:
- 變更:列出所有已修改、新增或刪除但尚未暫存以供提交的檔案
- 暫存的變更:列出已暫存並準備好提交的檔案

請注意,變更後的檔案旁會顯示 "U" (未追蹤)、"M" (已修改) 或 "D" (已刪除) 圖示,以標示變更類型。此變更指示器也會顯示在「總管」檢視以及修改後檔案的編輯器頁籤標題中。
活動列中的原始檔控制圖示也會顯示一個徽章,上面有受影響檔案的數量,讓您可以快速概覽尚未提交的變更。
您可以以平面或樹狀結構檢視變更列表。您可以在「原始檔控制」檢視工具列中,透過更多動作 (...) > 檢視與排序 > 以樹狀/列表檢視選項來切換。
編輯器裝訂線指示器
為了協助您快速識別檔案中的變更,VS Code 會在編輯器行號旁邊顯示裝訂線指示器,以表示自上次提交以來新增、修改或刪除的行。您也可以在迷你地圖中看到這些指示器。
裝訂線顏色表示變更的類型
- 綠色條:自上次提交以來新增的行
- 藍色條:自上次提交以來修改的行
- 紅色三角形:已刪除的行 (顯示在刪除點上方)
當您選取裝訂線指示器時,會出現變更的行內差異預覽。您可以直接從此預覽中使用對應的按鈕來暫存或還原變更。

您可以使用下列設定來自訂裝訂線指示器的行為
- scm.diffDecorations :控制差異裝飾出現的時間 (全部、裝訂線、概覽、迷你地圖或無)
- scm.diffDecorationsGutterAction :控制裝訂線選單中可用的動作
- scm.diffDecorationsGutterPattern :自訂用於裝訂線裝飾的模式
- scm.diffDecorationsGutterVisibility :控制何時顯示裝訂線裝飾 (總是或懸停時)
- scm.diffDecorationsGutterWidth :設定裝訂線指示器的寬度
- scm.diffDecorationsIgnoreTrimWhitespace :在差異裝飾中忽略空白變更
暫存變更
暫存變更可以讓變更準備好加入下一次的提交。您可以暫存整個檔案,或是特定行與程式碼區塊,以達到更細緻的控制。
若要暫存個別檔案,請將滑鼠游標移至「變更」列表中的該檔案,並選取 + (加號) 圖示,或按一下右鍵並選取暫存變更。您也可以從「變更」區段拖曳檔案並將其放入「暫存的變更」區段來進行暫存。

當您使用樹狀檢視時,您可以透過暫存資料夾本身來暫存整個資料夾。若要一次暫存所有修改過的檔案,請將游標移至「變更」標題並選取 + (加號) 圖示。
命令選擇區 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中還有更多專業的暫存動作。輸入 "Git: Stage" 以查看暫存檔案的選項。
暫存特定行或程式碼區塊
除了暫存整個檔案外,您也可以暫存檔案的特定部分。部分暫存讓您可以建立目標明確的提交。例如,如果您在同一個檔案中進行了格式化變更與錯誤修正,您可以分別提交並加上適當的提交訊息。
您可以從差異編輯器執行部分暫存
-
在「變更」列表中選取一個檔案以開啟差異編輯器
-
選取您想要暫存的行
-
使用差異編輯器中選擇範圍旁裝訂線上的暫存按鈕,僅暫存這些行

您也可以在選取範圍上按右鍵並選擇暫存選取的範圍,或從命令選擇區執行 Git: Stage Selected Ranges。
取消暫存變更
若要從暫存中移除檔案,請將滑鼠游標移至「暫存的變更」列表中的該檔案,並選取 - (減號) 圖示,或按一下右鍵並選擇取消暫存變更。檔案會移回「變更」區段,且不會遺失您的修改。

同樣地,您也可以使用選擇範圍旁裝訂線上的取消暫存按鈕,從差異編輯器中取消暫存特定行或程式碼區塊。
提交您的變更
一旦您暫存了變更,即可建立提交將其儲存至本機儲存庫。若要建立提交,您需要撰寫說明這些變更的提交訊息。在檢閱提交歷史紀錄時,此訊息有助於您與他人了解提交的目的。
撰寫提交訊息
提交訊息會說明您正在提交的變更,並協助他人 (以及未來的自己) 理解該次提交的目的。在「原始檔控制」檢視頂端的提交訊息輸入方塊中輸入訊息,然後選取提交以儲存已暫存的變更。
為了協助您撰寫提交訊息,請選取提交訊息輸入方塊中的閃爍圖示 ,使用 AI 根據您的已暫存變更產生訊息。您可以建立自訂指令來引導 AI 產生訊息。

如果您想撰寫多段式的提交訊息,可以使用完整編輯器取代輸入方塊。請啟用 git.useEditorAsCommitInput 設定。當您在沒有提交訊息的情況下提交變更時,系統會開啟一個新的編輯器頁籤讓您撰寫訊息。
若要在先前的提交訊息之間循環切換,請在聚焦於提交訊息輸入方塊時,按 ↑ (Windows, Linux Up) 與 ↓ (Windows, Linux Down)。
使用編輯器來撰寫提交訊息
除了使用提交訊息輸入方塊外,您也可以在完整的編輯器頁籤中撰寫提交訊息。這對於較長的訊息,或是當您需要更多空間來撰寫訊息時非常有用。
-
在「原始檔控制」檢視中,選取提交而不輸入訊息。這會開啟一個名為
COMMIT_EDITMSG的新編輯器頁籤。
-
在編輯器中撰寫您的提交訊息。您可以視需要使用多個段落並格式化您的訊息。
-
若要接受提交訊息並完成提交作業,請關閉該編輯器頁籤或選取編輯器中的提交。

-
若要取消提交作業,您可以清除文字編輯器的內容並關閉該頁籤,或是選取編輯器中的取消 (
X)。
若要停用使用編輯器來撰寫提交訊息並回復為快速輸入控制項,請停用 git.useEditorAsCommitInput 設定 (重新啟動 VS Code 以使變更生效)。
若要對整合終端機中執行的 git commit 指令使用相同流程,請啟用 git.terminalGitEditor 設定 (重新啟動終端機以使變更生效)。
AI 共同作者歸屬
當您提交 AI 協助產生的程式碼時,VS Code 可以自動將 Co-authored-by: Git 尾註 (trailer) 附加到您的提交訊息。這有助於您與團隊追蹤哪些提交包含 AI 產生的貢獻。
若要啟用此功能,請使用下列值之一來設定 git.addAICoAuthor 設定
off(預設):不加入共同作者尾註chatAndAgent:在透過 Copilot Chat 或代理模式產生的程式碼進行提交時,加入尾註all:為所有 AI 產生的程式碼加入尾註,包括行內補全
尾註僅在您從 VS Code 內部進行提交時才會加入。使用外部 Git 工具或命令列所做的提交不會包含此尾註。
提交尾註中的共同作者資訊也會顯示在 Git blame 懸停工具提示中。
提交變更
在「原始檔控制」檢視中選取提交按鈕,以提交「暫存的變更」區段中的變更。任何未暫存的變更將保留在「變更」區段中,供未來提交使用。
若要一次提交所有變更 (已暫存與未暫存),請選取更多動作 (...) 選單並選擇提交 > 全部提交。這會將所有修改過的檔案在一個步驟中暫存並提交。
修正前一次提交
如果您需要修改最近一次的提交,可以進行修正,而不必建立新的提交。這對於加入遺漏的變更或更正提交訊息很有用。
若要修正提交,請選取提交按鈕的下拉式選單並選擇提交 (修正),或從更多動作 (...) 選單中使用提交已暫存變更 (修正) 選項。
僅修正尚未推送到共用儲存庫的提交。修正已推送的提交會重寫歷史紀錄,並可能對其他協作者造成問題。
復原上次提交
如果您需要復原上次提交,請在「原始檔控制」檢視中選取更多動作 (...) 選單,然後選擇提交 > 復原上次提交。這會將上次提交從您的分支歷史紀錄中移除,但會將該次提交的所有變更保持在「暫存的變更」區段中。
捨棄變更
若要完全捨棄尚未提交的變更並將檔案還原至上次提交的狀態,請在「原始檔控制」檢視中對檔案按右鍵並選取捨棄變更。或者,將滑鼠游標移至「變更」列表中的檔案,並選取捨棄圖示 (一個指向左方的弧形箭頭)。
捨棄的變更會移至資源回收桶 (Windows) 或垃圾桶 (macOS/Linux),讓您有機會在需要時將其復原。
使用差異編輯器檢閱變更
差異編輯器顯示您檔案中的變更內容。它會並排顯示原始版本與修改版本的比較。差異編輯器可以並排或行內檢視開啟。
若要開啟差異編輯器,請在「原始檔控制」檢視的「變更」或「暫存的變更」列表中選取任何檔案,以查看該檔案與上次提交版本相比的變更。
對於大型檔案,可以透過選取差異編輯器工具列中的摺疊未變更的區域按鈕來摺疊未變更的區段。這有助於您專注於實際的變更。您也可以使用下一個變更與上一個變更按鈕,在變更之間快速導覽。
並排與行內檢視
預設情況下,差異編輯器會顯示並排比較,左側為原始檔案,右側為您的變更。

若要切換至行內檢視,請選取差異編輯器工具列中的更多動作 (...) > 行內檢視,以在同一個編輯器中檢視變更。

您可以使用 diffEditor.renderSideBySide 設定來設定您的預設檢視偏好。
從差異編輯器暫存與還原
差異編輯器包含一個裝訂線,每個變更旁都有暫存與還原按鈕。這些按鈕讓您可以:
- 直接從差異檢視暫存個別程式碼區塊或行
- 還原特定變更而不影響其他修改
如果您在差異編輯器中選取了特定行,這些按鈕僅會對您的選擇範圍進行操作。
您可以使用 diffEditor.renderGutterMenu 設定隱藏差異編輯器的裝訂線。
無障礙差異檢視器
對於螢幕閱讀器使用者,VS Code 提供了無障礙差異檢視器,它以統一的修補程式 (patch) 格式呈現變更。若要開啟無障礙差異檢視器,請使用差異編輯器工具列中的更多動作 (...) 選單並選擇開啟無障礙差異檢視器,或使用 F7 鍵盤快速鍵。
使用移至下一個差異 (F7) 與移至上一個差異 () 命令來導覽變更。
使用 AI 檢閱程式碼變更
VS Code 讓您可以在提交前使用 AI 輔助檢閱未提交的變更。這些 AI 功能是對人工程式碼檢閱的補充,有助於在開發工作流程的早期階段發現問題。
若要對未提交的變更執行 AI 驅動的程式碼檢閱:
-
在「原始檔控制」檢視中選取程式碼檢閱按鈕

-
VS Code 會分析您的變更並產生檢閱註解與建議,這些內容會以覆蓋註解的形式出現在編輯器中

Git blame 資訊
VS Code 可以行內顯示 Git blame 資訊於編輯器中以及狀態列中。將滑鼠游標移至狀態列項目或編輯器行內提示上,即可檢視詳細的 Git blame 資訊,包括來自提交的任何共同作者尾註。如果您啟用 AI 共同作者歸屬,blame 工具提示會針對包含 AI 產生程式碼的提交顯示其 AI 共同作者。
若要啟用或停用 Git blame 資訊,請使用 Git: Toggle Git Blame Editor Decoration 與 Git: Toggle Git Blame Status Bar Item 命令,或設定下列項目:
- git.blame.statusBarItem.enabled (預設啟用)
- git.blame.editorDecoration.enabled (若要停用編輯器中的懸停資訊,請使用 git.blame.editorDecoration.disableHover 設定)
若要在顯示 Git blame 資訊時忽略空白變更,請啟用 git.blame.ignoreWhitespace 設定。
您可以使用 git.blame.editorDecoration.template 與 git.blame.statusBarItem.template 設定來自訂編輯器與狀態列中顯示的訊息格式。您可以使用變數來獲取最常見的資訊。
例如,下列範本顯示提交主旨、作者名稱,以及作者日期相對於現在的時間。
{
"git.blame.editorDecoration.template": "${subject}, ${authorName} (${authorDateAgo})"
}
若要調整編輯器裝飾的顏色,請使用 git.blame.editorDecorationForeground 主題顏色。
用於提交歷史紀錄的圖表檢視
「原始檔控制」檢視中的「原始檔控制圖」提供了您的提交歷史紀錄與分支關係的視覺化表示。當您設定了遠端儲存庫時,您可以看到您的提交領先或落後遠端多少。
此圖包含目前分支、目前分支的上游分支,以及選用的基礎分支。圖表的根節點是這些分支的共同祖先。

此圖表提供下列功能:
- 選取一個項目以查看該提交中變更的檔案。選取開啟變更動作以在編輯器中查看該提交的差異。
- 在提交上按右鍵以執行簽出 (checkout)、揀選 (cherry-pick)、將其新增為聊天背景資訊等動作。
- 選取一個檔案以在編輯器中查看該檔案的差異。
- 選取一個提交,並透過按右鍵選擇與...比較、與遠端比較或與合併基礎比較,將其與另一個分支或標籤進行比較。
使用圖表檢視工具列中的動作來選取分支、擷取 (fetch)、提取 (pull)、推送 (push) 與同步變更。
用於檔案歷史紀錄的時間軸檢視
時間軸檢視位於檔案總管底部,是視覺化檔案事件歷史紀錄的統一檢視。例如,您可以在時間軸檢視中查看 Git 提交或本機檔案儲存紀錄。

深入了解時間軸檢視。
後續步驟
- 分支與工作樹 - 了解分支管理、Git 工作樹與暫存 (stash) 操作
- 儲存庫與遠端 - 了解複製、發佈與同步遠端儲存庫
- 合併衝突 - 處理合併分支時的衝突
- 使用 GitHub - 了解如何處理提取要求 (Pull Request) 與問題 (Issue)
- VS Code 中的 Copilot - 探索更多 AI 驅動的開發功能