在 Visual Studio 中管理 Git 存放庫

[Git 存放庫] 視窗提供全螢幕 Git 體驗,可協助您管理 Git 存放庫,並隨時掌握小組專案的狀態。 例如,您可能需要重設、還原或揀選認可,或只是清除認可歷程記錄。 [Git 存放庫] 視窗也是視覺化和管理分支的絕佳位置。

使用 Visual Studio 進行版本控制有了 Git 便很容易。 同時,您可以從遠端與您選擇的 Git 提供者合作,例如 GitHub 或 Azure DevOps。 或者,您可以在完全沒有任何提供者的情況下在本機工作。

打開 [Git 存放庫] 視窗

若要打開 [Git 存放庫] 視窗,請選擇 [檢視 >Git 存放庫] (或按 Ctrl+0Ctrl+R),或按 Ctrl+Q,然後在 [功能] 下搜尋 [Git 存放庫]。

變更最後一個認可 (修改)

更新最後一個認可在 Git 中稱為修改,這是常見的使用案例。 有時候,您只是需要更新您的認可訊息,或可能需要包含最後一分鐘的變更。

您可以在命令列上使用下列命令來修改認可:

git commit --amend

[Git 存放庫] 視窗可讓您輕鬆地更新最新的認可訊息。 按兩下最後一個認可來開啟認可詳細資料,然後選取認可訊息旁的 [編輯] 選項。

顯示如何編輯認可訊息的螢幕擷取畫面。

完成編輯您的認可訊息時,選取 [修改]

顯示如何選取 [修改] 來儲存已編輯訊息的螢幕擷取畫面。

如果您需要包含對最後一個認可的程式碼變更,您可以在 [Git 變更] 視窗中執行該動作。 選取 [修改] 核取方塊,然後認可您的變更。

顯示如何使用 [Git 變更] 視窗修改程式碼變更的螢幕擷取畫面。

若要深入瞭解修改,包括如何變更非最新的認可訊息,請參閱 Git 網站上的 <Git 工具 - 重寫歷程記錄> (英文)。

合併認可 (壓縮)

若要合併一系列的認可,Git 提供將認可壓縮為單一認可的選項。 如果您經常進行認可,而且最後會有一長串您想要先清除然後再推送至遠端存放庫的認可清單,此選項會很有幫助。

您可以在命令列上使用下列命令來壓縮兩個認可:

git rebase -i HEAD~2

然後將 pick 更新為 squash,儲存並更新認可訊息。

顯示將 pick 更新為 squash 的螢幕擷取畫面。

若要在 Visual Studio 中合併認可,請使用 Ctrl 鍵來選取您想要合併的多個認可。 然後按一下滑鼠右鍵,並選取 [壓縮認可]。 Visual Studio 會自動合併您的認可訊息,但有時最好提供更新的訊息。 檢閱並更新認可訊息之後,請選取 [壓縮] 按鈕。

顯示 Visual Studio 中的壓縮認可的螢幕擷取畫面。

若要深入了解壓縮,請參閱 Git 網站上的 Git 工具 - 重寫歷程記錄

合併和重訂分支基底

如果您使用 Git 分支來處理不同的功能,則在某些時候,您必須包含對其他分支推出的更新。 當您仍在處理功能分支時,可能會發生這種情況。 當您完成功能分支的工作,並且需要藉由將變更加入至不同的分支來保留變更時,也可能會發生此情況。 在 Git 中,您可以合併或重訂基底分支來包含這些更新。

注意

下列指示會使用 New_Feature 作為功能分支的範例名稱。 將它取代為您自己的分支名稱。

若要將主分支合併到命令列上的功能分支,請使用下列命令:

git checkout New_Feature
git merge main

若要在 Visual Studio 中執行相同的動作,請在分支清單中按兩下它來查看該功能分支。 然後以滑鼠右鍵按一下 main,並選取 [將 'main' 合併到 'New_Feature']

顯示 Visual Studio 中的合併分支的螢幕擷取畫面。

若要將主分支重訂基底到命令列上的功能分支,請使用下列命令:

git checkout New_Feature
git rebase main

若要在 Visual Studio 中執行相同的動作,請在分支清單中按兩下它來查看該功能分支。 然後以滑鼠右鍵按一下 main,並選取 [重訂基底 'New_Feature' 到 'main']

顯示 Visual Studio 中的分支重訂基底的螢幕擷取畫面。

若要深入了解合併、重訂基底和分支的概況,請參閱 Git 網站上的 Git 分支

複製認可 (揀選)

使用揀選選項,將認可從一個分支複製到另一個分支。 不同於合併或重訂基底,揀選只會帶來來自您選取的認可的變更,而不是分支中的所有變更。 揀選是解決這些常見問題的絕佳方式:

  • 不小心在錯誤的分支中認可。 揀選變更到正確的分支,然後將原始分支重設為先前的認可。
  • 提取在功能分支中進行的一組認可,以便您可以更快速將它們合併回主分支。
  • 從主分支移植特定認可,而不需要為分支重訂基底。

若要使用命令列將來自認可的變更複製到最新分支,請使用下列命令:

git cherry-pick 7599e530

若要在 Visual Studio 中執行相同的動作,請預覽您想要從中揀選認可的分支,方法是按一下即可選取。 然後以滑鼠右鍵按一下目標認可,並選取 [揀選]

顯示 Visual Studio 中的揀選的螢幕擷取畫面。

作業完成時,Visual Studio 會顯示成功訊息。 您揀選的認可會出現在 [傳出] 區段中。

若要深入了解揀選認可,請參閱揀選命令的 Git 網頁

還原變更

使用還原命令來復原推送至共用分支的認可中所做的變更。 還原命令會建立新的認可,以復原在先前的認可上所做的變更。 還原命令不會重寫存放庫歷程記錄,這可讓您在與其他人合作時安全地使用。

若要使用命令列還原在認可中所做的變更,請使用下列命令。 將範例識別碼取代為您分支中實際認可的識別碼。

git revert 53333305
git commit

在上一個範例中,命令會復原在認可 53333305 所做的變更,並在分支上建立新的認可。 原始認可仍會在 Git 歷程記錄中。 若要在 Visual Studio 中執行相同的動作,請以滑鼠右鍵按一下您要還原的認可,然後選取 [還原]。 確認動作和作業完成之後,Visual Studio 會顯示成功訊息,並在 [傳出] 區段中顯示新的認可。

顯示 Visual Studio 中的還原的螢幕擷取畫面。

選取新的認可,以確認其會復原已還原的認可變更。

顯示確認還原作業的螢幕擷取畫面。

若要深入了解還原變更,請參閱還原命令的 Git 網頁

將分支重設為先前的狀態

使用重設命令,將本機存放庫中的分支帶回先前認可的內容。 此動作會捨棄自您重設分支後認可發生的所有變更。

警告

請勿重設共用分支,因為您可能會刪除其他人的工作。 請改用還原命令。

若要使用命令列將分支重設為先前的狀態,請使用下列命令。 將範例識別碼取代為您分支中實際認可的識別碼。

git reset --hard 53333305

命令的 --hard 部分會指示 Git 將檔案重設為先前認可的狀態,並捨棄任何暫存的變更。 若要在 Visual Studio 中執行相同的動作,請以滑鼠右鍵按一下您要重設分支的認可,然後選取 [重設]> [刪除變更 (--實刪除)]

顯示在 Visual Studio 中重設分支的螢幕擷取畫面。

若要深入了解重設分支,請參閱重設命令的 Git 網頁