關於 Visual Studio 中的 Git
Visual Studio 提供 Git 的使用者介面,這是廣泛使用的新式版本控制系統。 無論您的原始程式碼是託管在 GitHub 存放庫、Azure DevOps 或其他 Git 供應商中,您都可以在 Visual Studio IDE 中執行所有常見的版本控制工作。 或者,您可以在本機使用完全沒有供應商,並在您準備好連線到供應商時,選擇稍後備份您的來源。
您使用的原始程式碼不需要使用 Visual Studio 建立。 不論是否有 Visual Studio 專案檔,都可以在任何 Git 存放庫中使用任何源資料夾。
在 Visual Studio 中開始使用 Git 和 GitHub
若要開始使用 Git 搭配 Visual Studio:
如果您的 Git 存放庫裝載在 GitHub 之類的 Git 提供者上,請複製存放庫到本機電腦。
或者,輕鬆地建立新的 Git 存放庫並新增您的程式碼。 如果您還沒有 Git 提供者,建議您從 GitHub 開始,因為 Visual Studio 中的 Git 體驗已針對此提供者最佳化。 GitHub 提供免費且安全的雲端程式碼儲存體,您可以在其中儲存您的程式碼,並從任何裝置隨處存取。
您不僅可以將 GitHub 和 GitHub Enterprise 帳戶新增至 Keychain,還可以像使用 Microsoft 帳戶一樣運用它們。 如果您沒有 GitHub 帳戶,請立即遵循下列步驟來建立 GitHub 帳戶,以與 Visual Studio 搭配使用。
如果您想要在命令列使用 git 命令,則也應該安裝 Git for Windows (非 Microsoft 產品)。
在方案總管中檢視檔案
複製存放庫或開啟本機存放庫時,Visual Studio 會切換至 Git 內容。 方案總管會載入資料夾至 Git 存放庫根目錄,並掃描目錄樹狀目錄中是否有任何可檢視的檔案,例如 CMakeLists.txt
或副檔名為 .sln
的檔案。 如需詳細資訊,請參閱在方案總管中檢視檔案。
分支和遠端存放庫
您可以使用分支,將相關變更與您目前正在處理的不相關變更分開。 建議的 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 2022 版本 17.6 中,您可以搜尋並連結到 GitHub 問題和 Azure DevOps 工作項目。 請參閱提高生產力的 Git 功能部落格文章。
Git 現在是 Visual Studio 2019 的預設版本控制體驗。 自版本 16.6 起,我們一直致力於建置功能集,並根據您的意見反應來持續說明。 在版本 16.8 中,它成為每個人的預設版本控制體驗。
注意
我們也在 Visual Studio 2022 中的 Git 功能集上持續建置並反覆說明。 若要深入了解最近的功能更新,請參閱 Multi-repo support in Visual Studio (英文) 部落格文章。
深入了解 Git
Git 是最廣泛使用的新式版本控制系統,因此無論您是專業開發人員,還是您正在學習如何撰寫程式碼,Git 對您都非常有用。 如果您不熟悉 Git,https://git-scm.com/ 網站是很好的起點。 在那裡,您將找到速查表、熱門的線上書籍和 Git 基本概念影片。
從 Visual Studio 2019 中的 Git 開始
我們將逐步引導您了解如何在 Visual Studio 中使用新的 Git 體驗,但如果您想要先進行快速的導覽,請參閱下列影片:
影片長度:5.27 分鐘
有三個方式可以開始使用 Git 搭配 Visual Studio 以提高生產力:
- 建立新的 Git 存放庫。 如果您已經有未與 Git 相關聯的程式碼,您可以從建立新 Git 存放庫開始。
- 複製現有的 Git 存放庫。 如果您想要處理的程式碼不在您的電腦上,您可以複製任何現有的遠端存放庫。
- 開啟現有的 Git 存放庫。 如果您的程式碼已經在您的電腦上,您可以使用 [檔案] > [開啟] > [專案/方案] (或 [資料夾]) 來開啟它,而 Visual Studio 會自動偵測其是否有已初始化的 Git 存放庫。
注意
從 Visual Studio 2019 版本 16.8 開始,我們包含完全整合的 GitHub 帳戶體驗。 您現在可以同時將 GitHub 和 GitHub Enterprise 帳戶新增至您的 Keychain。 您能夠像使用 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 變更] 視窗在分支下拉式清單下有一個指標,它會顯示來自遠端分支未提取的認可數目。 此指標也會顯示未推送的本機認可數目。
該指標也會充當一個連結,帶您前往 [Git 存放庫] 視窗中該分支的認可歷程記錄。 歷程記錄的頂端現在會顯示這些傳入和傳出認可的詳細資料。 從這裡,您也可以決定提取或推送認可。
Visual Studio 2019 中的認可詳細資料
當您按兩下 [認可] 時,Visual Studio 會在個別的工具視窗中開啟其詳細資料。 您可以從這裡還原認可、重設認可、修改認可訊息,或在認可上建立標籤。 當您在認可中按一下變更的檔案時,Visual Studio 會開啟認可及其父系的並排 Diff 檢視。
處理 Visual Studio 2019 中的合併衝突
如果兩位開發人員修改檔案中的相同行,且 Git 無法自動知道哪一個正確時,合併期間可能發生衝突。 Git 會中止合併,並通知您處於衝突狀態。
Visual Studio 可讓您輕鬆地識別和解決合併衝突。 首先,[Git 存放庫] 視窗會在視窗頂端顯示金色的資訊列。
[Git 變更] 視窗也會顯示「合併進行中但有衝突」訊息,並在其下方的個別區段中顯示未合併的檔案。
但是,如果您未開啟這兩個視窗,而是移至有合併衝突的檔案,則不需要搜尋下列文字:
<<<<<<< HEAD
=======
>>>>>>> main
相反地,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。
下一步
提示
若要了解如何在 Visual Studio 中使用 Git 和 GitHub,請註冊 Git 學習系列。