Share via


在 Visual Studio 中瀏覽 Git 存放庫和比較分支

[Git 變更] 視窗提供順暢的方式與 Git 互動,同時可撰寫程式碼,不需要切換離開程式碼。 但是有時候,專注於 Git 存放庫更有意義。 例如,您可能需要了解小組所處理的內容,或比較兩個提交來調查 Bug。

您可以從遠端與您選擇的 Git 提供者合作,例如 GitHub 或 Azure DevOps。

瀏覽本機和遠端分支

若要開始使用,請在 [檢視] 功能表上選取 [Git 存放庫](或使用 Ctrl+0, Ctrl+R 鍵盤快速鍵),以開啟 [Git 存放庫] 視窗。 您也可以在 [Git 變更] 視窗和狀態列上選取 [傳出/傳入] 連結,以存取 [Git 存放庫] 視窗。

Screenshot that shows the anatomy of the Git Repository window.

[Git 存放庫] 視窗包含三個主要區段,如上一個螢幕擷取畫面所示:

  1. [分支]:Git 可讓使用者透過分支執行多工並實驗其程式碼。 如果您要同時處理多個功能,或想要探索想法而不會影響您的工作程式碼,分支可能很有幫助。

  2. [圖表]:本區段會將分支的狀態視覺化。 有三個子區段:

    • [傳入] 會顯示小組已參與的傳入提交。
    • [傳出] 會顯示您尚未推送的本機提交。
    • [本機歷程記錄] 會顯示本機存放庫所追蹤的其餘提交。
  3. [提交]:選取 [圖表] 區段中的任何提交會開啟其詳細資料。 您可以選取提交來檢查提交所引進的變更,這會顯示差異。 例如,上一個螢幕擷取畫面顯示對 Resize.cs 檔案導入的變更。

Alt+向上鍵Alt+向下鍵鍵盤快速鍵可讓您在這些區段之間跳躍。

您可以瀏覽任何本機或遠端分支,而不需要切換分支。 當您找到想要專注的提交時,請選取 [在新的索引標籤中開啟] 按鈕,以在不同的索引標籤上開啟提交。

Screenshot of how to open a commit on a new tab.

Screenshot of the tab for commit details.

提示

若要以全螢幕顯示提交,請將 [提交] 索引標籤中斷連結,然後使用 [最大化] 按鈕將 [提交] 視窗最大化。 您也可以選取 [差異設定] (齒輪圖示) 來選取您最愛的差異設定。

Screenshot of full-screen commit details with diff configurations.

多分支圖表檢視

17.7 版的新功能:當您開啟 [Git 存放庫] 視窗時,您會在單一分支檢視中啟動。 然後,您可以選取任何分支,將分支及其提交新增至多分支圖表檢視,這樣會新增視覺提示,使其更有效率地與多個分支互動。

Screenshot of the multi-graph branch view in Visual Studio.

[本機歷程記錄] 檢視左側有著色線條和分支標籤,有助於更輕鬆地追蹤哪些提交屬於每個分支。 您可以使用資料表頂端的分支清單,更輕鬆地在分支之間捲動,並立即知道圖表中顯示哪些分支。

比較提交

若要比較分支中的任何兩個提交,請使用 Ctrl 鍵來選取您想要比較的兩個提交。 然後,以滑鼠右鍵按一下其中一個提交,然後選取 [比較提交]

Screenshot of how to compare two commits.

Screenshot of compared commits.

提示

與 [提交詳細資料] 類似,您可以使用 [在新的索引標籤中開啟] 按鈕,在不同索引標籤上開啟比較,或在畫面上最大化。

從提交建立分支

在 Visual Studio 中,您可以使用 [Git 存放庫] 視窗中的 [Git 圖表] 窗格,從先前的提交建立分支。 若要這樣做,請以滑鼠右鍵按一下您想要據以建立新分支的提交,然後選取 [新增分支]

Screenshot of the Git Graph pane of the Git Repository window.

注意

此動作的對等命令為 git branch <branchname> [<commit-id>]

比較分支

比較分支會提供兩個分支之間的差異概觀,這在建立提取要求、合併甚至是刪除分支之前可能很有幫助。

Diagram that illustrates how Git compares branches.

若要使用 Visual Studio 比較您目前簽出的分支與其他分支,您可以使用裝載於狀態列的分支選擇器以及 Git 變更工具視窗,來選擇要比較的任何本機或遠端分支。 以滑鼠右鍵按一下您設定為目標的分支,然後選取 [與最新分支比較]。 或者,您可以使用 [Git 存放庫] 視窗上的分支清單來存取相同的命令。

Animation that shows the branches comparison entry points.

選取 [與最新分支比較] 會開啟比較分支體驗,您可以在其中瀏覽 [變更] 清單,然後選取您想要比較的檔案。

Screenshot that shows how to compare branches by using the diff view.

提示

如果您偏好內嵌差異,您可以使用 [差異設定選項] 齒輪圖示,並切換至內嵌差異檢視。 Screenshot that shows the Diff Configuration Options that're available to you.

簽出提交

簽出提交在許多方面都很有助益。 例如,它可讓您回到存放庫歷程記錄中的上一個點,您可以在其中執行或測試程式碼。 如果您想要檢閱遠端分支的程式碼 (例如同事的分支),也很有幫助。 如此一來,如果您不打算參與該分支,就不需要建立本機分支。 在此情況下,您可以只簽出您想要檢閱之遠端分支的提示。

Diagram that illustrates the Git checkout commit process.

若要在 Visual Studio 中簽出先前的提交,請開啟 [Git 存放庫] 視窗,以滑鼠右鍵按一下您想要返回的提交,然後選取 [簽出 (–中斷連結)]。 Visual Studio 會顯示確認對話方塊,說明藉由簽出提交,您將會處於中斷連結的「前端」狀態。 這表示存放庫的「前端」會直接指向提交,而不是分支。

Animation that shows the checkout commit entry points.

既然您已處於中斷連結的前端狀態,您可以隨意執行及測試您的程式碼,甚至探索並提交變更。 當您完成探索並想要返回分支時,您可以選擇簽出現有的分支來捨棄變更,或先 [建立新的分支] 來保留變更。

重要

在中斷連結的前端狀態中建立的提交不會與任何分支相關聯,而且在您簽出分支之後,Git 可能會進行記憶體回收。 這就是為什麼要保留變更的原因,建議您先建立新的分支,再簽出分支。 例如,如果我們簽出 Main 而不建立新的分支,則提交 C5 和 C6 將會進行記憶體回收。 Diagram that illustrates the detached head commits in Git.

若要深入了解中斷連結的前端狀態,請參閱中斷連結的前端 Git 文件。

如果您想要快速檢閱提取要求並評估最新的更新,簽出遠端分支的提示會很有幫助。 若要在 Visual Studio 中這樣做,請先確定從遠端存放庫擷取並取得最新的更新。 然後以滑鼠右鍵按一下您想要檢閱的遠端分支,然後選取 [簽出提示提交]

Screenshot that shows the Checkout Tip Commit option.