適用于: 是 Visual Studio 否 Visual Studio for Mac 否 Visual Studio Code

您是否想要回到先前運作的程式碼版本? 您是否發現您自己手動將程式碼的複本儲存在不同的位置做為備份? 正確,版本控制是答案。

Git 是最廣泛使用的新式版本控制系統。 透過 Git,您可以追蹤一段時間後所做的程式碼變更,並還原為特定版本。 因此,不論您是專業開發人員,還是如果您瞭解如何撰寫程式碼,Visual Studio 的 Git 體驗都對您非常有用。

若要瞭解如何在 Visual Studio 中使用 Git 和 GitHub,請註冊 Git 學習系列

從 Visual Studio 中的 Git & GitHub 開始

使用 Visual Studio 進行版本控制很容易使用 Git。 我們與您相見。 您可以從遠端與您選擇的 Git 提供者合作,例如 GitHub 或 Azure DevOps。 或者,您可以在本機使用完全沒有提供者。

若要開始搭配 Visual Studio 使用 Git:

  • 如果您的 Git 存放庫裝載于 GitHub 之類的 Git 提供者上, 請將存放庫複製到 本機電腦。

  • 否則,請輕鬆地 建立新的 Git 存放庫,並新增您的程式碼 。 如果您還沒有 Git 提供者,建議您從 GitHub 開始,因為 Visual Studio 中的 Git 體驗已針對此提供者優化。 GitHub 提供免費且安全的雲端程式碼儲存體,您可以在其中儲存您的程式碼,並從任何裝置隨時隨地加以存取。

    您不僅可將 GitHub 和 GitHub Enterprise 帳戶新增至您的金鑰鏈 ,也可以像使用 Microsoft 帳戶一樣運用它們。 如果您沒有 GitHub 帳戶,請遵循下列步驟來 建立 GitHub 帳戶,以便立即與 Visual Studio 搭配使用

    如果您不熟悉 Git,網站 https://git-scm.com/ 是很好的起點。

    檢視方案總管中的檔案

    當您複製存放庫或開啟本機存放庫時,Visual Studio 會切換至 Git 內容。 方案總管載入 Git 存放庫根目錄的資料夾,並掃描目錄樹狀結構中是否有任何可檢視的檔案,例如 CMakeLists.txt 或副檔名為 .sln 的檔案。 如需詳細資訊,請參閱 檢視方案總管中的檔案

    直覺式內部迴圈工作流程

    針對日常 Git 工作流程,Visual Studio 提供順暢的方式與 Git 互動,同時撰寫程式碼,而不需要您切換程式碼。

    您可以透過分支進行多工並試驗程式碼。 如果您或小組同時處理多個功能,或如果您想要探索想法而不會影響工作程式碼,分支會很有説明。 建議的 Git 工作流程會針對您處理的每個功能或修正使用新的分支。 瞭解如何從 Visual Studio 建立分支

    建立新的分支並切換至該分支之後,您就可以開始工作,方法是變更現有的檔案,或新增新檔案,然後將您的工作認可至存放庫。 若要深入瞭解在 Visual Studio 中進行認可,並進一步瞭解 Git 中的檔案狀態,請參閱 建立認可 頁面。

    Git 是分散式版本控制系統,這表示到目前為止所做的所有變更都是本機變更。 若要將這些變更提供給遠端存放庫,您必須將這些 本機認可推送至遠端 ()

    如果您是在小組中工作,或正在使用不同的電腦,您也需要持續擷取和提取遠端存放庫上的新變更。 若要深入瞭解如何在 Visual Studio 中管理 Git 網路作業,請參閱 擷取、提取、推送和同步 處理頁面。

    存放庫管理 & 共同作業

    不過,有時更適合將焦點放在 Git 存放庫。 例如,您可能需要瞭解小組正在處理的內容,或從不同的分支複製認可,或只是清除您的傳出認可。 Visual Studio 包含功能強大的 存放庫流覽 和共同作業功能,不需要使用其他工具。

    為了協助您專注于 Git 存放庫,Visual Studio 具有 Git 存放庫 視窗,這是存放庫中所有詳細資料的合併檢視,包括本機和遠端分支和認可歷程記錄。 您可以直接從功能表列上的 Git 檢視 ,或從狀態列存取此視窗。

    流覽和管理 Git 存放庫

    若要深入瞭解如何在 Visual Studio 中使用 Git 存放庫視窗流覽和管理 Git 存放庫,請參閱下列頁面:

  • 流覽存放庫
  • 管理存放庫
  • 處理合併衝突

    如果兩位開發人員修改檔案中的相同行,而且 Git 不會自動知道哪一行正確,則合併期間可能會發生衝突。 Git 會停止合併,並通知您處於衝突狀態。 若要深入瞭解,請參閱 解決合併衝突 頁面。

    個人化您的 Git 設定

    若要在存放庫層級和全域層級個人化您的 Git 設定:

  • 移至功能表列上的 Git > 設定 工具 > 選項 > 原始檔控制 > Git 全域設定

  • 選擇您想要 的選項

    在 Visual Studio 內整合式 Git 工具方面,我們會繼續逐一查看效能和生產力增強功能。 以下是一些值得注意的更新:

  • 認可圖表 。 在 Visual Studio 2022 17.2 版中,我們引進了認可圖表功能,以協助減少檢視 Git 存放庫或分支歷程記錄時可能會遇到的延遲。 如需詳細資訊,請參閱 增強您的 Git 體驗 部落格文章。

  • 分支切換 。 此外,在 Visual Studio 2022 17.2 版中,我們估計為 80% 來減少需要解決方案重載的分支切換數目。 若要深入瞭解,請參閱 效能增強功能:Git 分支切換 部落格文章。

    Visual Studio 2022 17.6 版中還有更多功能更新,包括搜尋和 連結 至 GitHub 問題和 Azure DevOps 工作專案的能力,以及其中幾個功能更新。 若要取得所有詳細資料,請參閱 Git 功能以增強生產力部落 格文章。

    Git 現在是 Visual Studio 2019 的預設版本控制體驗。 自 16.6 版起,我們已努力建置功能集,並根據您的意見反應進行反覆運算。 在 16.8 版中,它成為每個人的預設版本控制體驗。

    我們也會繼續建置並逐一查看 Visual Studio 2022 中的 Git 功能集。 若要深入瞭解最近的功能更新,請參閱 Visual Studio 中的多存放庫支援 部落格文章。

    深入了解 Git

    Git 是最廣泛使用的新式版本控制系統,因此不論您是專業開發人員,還是要瞭解如何撰寫程式碼,Git 都對您非常有用。 如果您不熟悉 Git,網站 https://git-scm.com/ 是很好的起點。 您可以在該處找到速查表、熱門的線上書籍和 Git 基本概念影片。

    從 Visual Studio 2019 中的 Git 開始

    我們將逐步引導您瞭解如何在 Visual Studio 中使用新的 Git 體驗,但如果您想要先進行快速導覽,請參閱下列影片:

    視訊長度:5.27 分鐘

    有三種方式可以開始搭配 Visual Studio 使用 Git,以提高生產力:

  • 建立新的 Git 存放庫 。 如果您已經有未與 Git 相關聯的程式碼,您可以從建立新的 Git 存放庫開始。
  • 複製現有的 Git 存放庫 。 如果您想要處理的程式碼不在您的電腦上,您可以複製任何現有的遠端存放庫。
  • 開啟現有的 Git 存放庫 。 如果您的程式碼已在您的電腦上,您可以使用 檔案 > 開啟 > 專案/方案 (或 資料夾 ) 開啟它,而 Visual Studio 會自動偵測其是否有初始化的 Git 存放庫。
  • 從 Visual Studio 2019 16.8 版開始,我們包含完全整合的 GitHub 帳戶體驗。 您現在可以將 GitHub 和 GitHub Enterprise 帳戶新增至您的金鑰鏈。 您可以新增並運用它們,就像使用 Microsoft 帳戶一樣,這表示您會在 Visual Studio 中更輕鬆地存取 GitHub 資源。 如需詳細資訊,請參閱 在 Visual Studio 中使用 GitHub 帳戶 頁面。

    如果您沒有 GitHub 帳戶,您可以遵循 建立 GitHub 帳戶以與 Visual Studio 頁面中所述的步驟開始。

    在 Visual Studio 2019 中建立新的 Git 存放庫

    如果您的程式碼未與 Git 相關聯,您可以從建立新的 Git 存放庫開始。 若要這樣做,請從功能表列選取 [Git > 建立 Git 存放庫 ]。 然後,在 [ 建立 Git 存放庫 ] 對話方塊中,輸入您的資訊。

    [ 建立 Git 存放庫 ] 對話方塊可讓您輕鬆地將新的存放庫推送至 GitHub。 根據預設,您的新存放庫是私人存放庫,這表示您是唯一可以存取它的人員。 如果您取消核取方塊,您的存放庫將會是公用的,這表示 GitHub 上的任何人都可以檢視它。

    無論您的存放庫是公用還是私人的,最好是讓程式碼的遠端備份安全地儲存在 GitHub 上,即使您未與小組合作也一樣。 這也會讓您的程式碼可供您使用的電腦使用。

    您可以選擇使用 [僅限本機 ] 選項來建立僅限本機的 Git 存放庫。 或者,您可以使用 [ 現有遠端 ] 選項,將本機專案連結至 Azure DevOps 上現有的空白遠端存放庫或任何其他 Git 提供者。

    在 Visual Studio 2019 中複製現有的 Git 存放庫

    Visual Studio 包含直接的複製體驗。 如果您知道要複製之存放庫的 URL,可以在 [ 存放庫位置 ] 區段中貼上 URL,然後選擇您想要 Visual Studio 複製的磁片位置。

    如果您不知道存放庫 URL,Visual Studio 可讓您輕鬆地流覽並複製現有的 GitHub 或 Azure DevOps 存放庫。

    在 Visual Studio 2019 中開啟現有的本機存放庫

    複製存放庫或建立存放庫之後,Visual Studio 會偵測 Git 存放庫,並將它新增至 Git 功能表中的 [ 本機存放庫 ] 清單。

    您可以從這裡快速存取和切換 Git 存放庫。

    在 Visual Studio 2019 中檢視 方案總管 中的檔案

    當您複製存放庫或開啟本機存放庫時,Visual Studio 會儲存並關閉任何先前開啟的解決方案和專案,以切換至該 Git 內容。 方案總管載入 Git 存放庫根目錄的資料夾,並掃描目錄樹狀結構中是否有任何可檢視的檔案。 其中包括CMakeLists.txt或副檔名為 .sln 的檔案。

    Visual Studio 會根據其載入方案總管檔案來調整其檢視:

  • 如果您複製包含單一 .sln 檔案的存放庫,則方案總管直接為您載入該解決方案。
  • 如果方案總管不會偵測存放庫中的任何 .sln 檔案,則預設會載入資料夾檢視。
  • 如果您的存放庫有多個 .sln 檔案,則方案總管會顯示可供您選擇的可用檢視清單。
  • 您可以使用方案總管工具列中的 [ 切換 檢視] 按鈕,在目前開啟的 [檢視] 和 [檢視] 清單之間切換。

    如需詳細資訊,請參閱 從存放庫開啟專案的 方案總管一節中的檢視 檔案

    Visual Studio 2019 中的 [Git 變更] 視窗

    Git 會在您工作時追蹤存放庫中的檔案變更,並將存放庫中的檔案分成三個類別。 這些變更相當於您在命令列中輸入 git status 命令時會看到的內容:

  • 未修改的檔案 :這些檔案自上次認可後尚未變更。
  • 修改過的檔案 :這些檔案自上次認可後已有變更,但您尚未暫存下一個認可。
  • 暫存的檔案 :這些檔案有將新增至下一個認可的變更。
  • 當您執行工作時,Visual Studio 會在 [Git 變更 ] 視窗的 [ 變更 ] 區段中追蹤專案的檔案變更。

    當您準備好要暫存變更時,請按一下 + [ (加上) ] 按鈕,或以滑鼠右鍵按一下檔案,然後選取 [ 階段 ]。 您也可以使用 [ 變更 ] 區段頂端的 [所有 + (加上) ] 按鈕,按一下一鍵來暫存所有修改過的檔案。

    當您暫存變更時,Visual Studio 會建立 [分段變更 ] 區段。 只有 [ 暫存變更 ] 區段中的變更會新增至下一個認可,您可以選取 [ 認可分段 ] 來執行此動作。 這個動作的對等命令是 git commit -m "Your commit message" 。 您也可以按一下 (減去) 按鈕來解除標記變更。 此動作的對等命令是 git reset <file_path> 取消儲存單一檔案,或 git reset <directory_path> 取消儲存目錄中的所有檔案。

    您也可以略過暫存區域,選擇不要暫存修改過的檔案。 在此情況下,Visual Studio 可讓您直接認可變更,而不需要暫存變更。 只要輸入您的認可訊息,然後選取 [ 全部認可 ]。 這個動作的對等命令是 git commit -a

    Visual Studio 也可讓您使用 [ 全部認可] 和 [全部推送] 和 [ 全部認可] 和 [同步處理 ] 快捷方式,輕鬆地認可和同步處理。 當您按兩下 [變更 ] 和 [ 分段變更 ] 區段中的任何檔案時,您可以看到與檔案未修改版本的逐行比較。

    如果您連線到 Azure DevOps 存放庫,您可以使用 「#」 字元將 Azure DevOps 工作專案與認可產生關聯。 您可以透過 Team Explorer > 管理連線 來連線 Azure DevOps 存放庫。

    在 Visual Studio 2019 中選取現有的分支

    Visual Studio 會在 [Git 變更 ] 視窗頂端的選取器中顯示最新分支。

    最新分支也可以在 Visual Studio IDE 右下角的狀態列中取得。

    您可以從這兩個位置切換現有的分支。

    在 Visual Studio 2019 中建立新的分支

    您也可以建立新的分支。 這個動作的對等命令是 git checkout -b <branchname>

    建立新的分支就像輸入分支名稱一樣簡單,並以現有分支為基礎。

    您可以選擇現有的本機或遠端分支作為基底。 [ 簽出分支] 核取方塊會自動將您切換至新建立的分支。 這個動作的對等命令是 git checkout -b <new-branch><existing-branch>

    Visual Studio 2019 中的 Git 存放庫視窗

    Visual Studio 有新的 Git 存放庫 視窗,這是存放庫中所有詳細資料的合併檢視,包括所有分支、遠端和認可歷程記錄。 您可以直接從功能表列上的 Git 檢視 ,或從狀態列存取此視窗。

    在 Visual Studio 2019 中管理分支

    當您從 Git 功能表中選取 [ 管理分支 ] 時,您會在 [Git 存放庫 ] 視窗中看到分支樹狀檢視。 從左窗格中,您可以使用滑鼠右鍵操作功能表來簽出分支、建立新的分支、合併、重新基底、挑選等等。 當您按一下分支時,您可以在右窗格中看到其認可歷程記錄的預覽。

    Visual Studio 2019 中的傳入和傳出認可

    當您擷取分支時, [Git 變更 ] 視窗會在分支下拉式清單底下顯示指標,其中會顯示遠端分支中未 Null 的認可數目。 此指標也會顯示未推送的本機認可數目。

    指標也會作為連結,以帶您前往 Git 存放庫 視窗中該分支的認可歷程記錄。 歷程記錄頂端現在會顯示這些傳入和傳出認可的詳細資料。 您也可以從這裡決定提取或推送認可。

    Visual Studio 2019 中的認可詳細資料

    當您 按兩下認可時 ,Visual Studio 會在個別的工具視窗中開啟其詳細資料。 您可以從這裡還原認可、重設認可、修改認可訊息,或在認可上建立標記。 當您在認可中按一下變更的檔案時,Visual Studio 會開啟認可及其父系的並存 差異 檢視。

    處理 Visual Studio 2019 中的合併衝突

    如果兩位開發人員修改檔案中的相同行,而且 Git 不會自動知道哪一個正確,則合併期間可能會發生衝突。 Git 會停止合併,並通知您處於衝突狀態。

    Visual Studio 可讓您輕鬆地識別並解決合併衝突。 首先, Git 存放庫 視窗會在視窗頂端顯示金級資訊列。

    [Git 變更 ] 視窗也會顯示 「 合併正在進行衝突 」訊息,並在其下方的個別區段中顯示未合併的檔案。

    但是,如果您未開啟這兩個視窗,而是移至具有合併衝突的檔案,則不需要搜尋下列文字:

    =======

    相反地,Visual Studio 會在頁面頂端顯示金級資訊列,指出開啟的檔案有衝突。 然後,您可以按一下連結以開啟 合併編輯器

    Visual Studio 2019 中的合併編輯器

    Visual Studio 中的合併編輯器是三向合併工具,可顯示傳入的變更、您目前的變更,以及合併的結果。 您可以使用 合併編輯器 最上層的工具列,在檔案中的衝突和自動合併的差異之間巡覽。

    您也可以使用切換來顯示/隱藏差異、顯示/隱藏文字差異,以及自訂版面配置。 每個側頂端都有核取方塊,可用來從一端或另一端取得所有變更。 但是若要進行個別變更,您可以按一下任一端衝突行左邊的核取方塊。 最後,當您完成解決衝突時,您可以在合併編輯器中選取 [ 接受合併 ] 按鈕。 接著,您會撰寫認可訊息,並認可變更以完成解決。

    在 Visual Studio 2019 中個人化您的 Git 設定

    若要在存放庫層級和全域層級個人化和自訂 Git 設定,請移至功能表列上的 [Git > 設定 ],或移至功能表列上的 [ 工具 > 選項 > 原始檔控制 ]。 然後,選擇您想要 的選項

    如何在 Visual Studio 2019 中使用完整的 Team Explorer 體驗

    新的 Git 體驗是 Visual Studio 2019 16.8 版之後的預設版本控制系統。 不過,如果您想要將其關閉,您可以。 移至 [工具 > 選項 > 環境 > 預覽功能 ],然後切換 [ 新增 Git 使用者體驗 ] 核取方塊,這會將您切換回適用于 Git 的 Team Explorer。