Visual Studio 中的 Git 設定和喜好設定

在 Visual Studio 中,您可以設定和檢視常見的 Git 設定和喜好設定,例如您的名稱和電子郵件地址、您慣用的差異和合併工具等等。 您可以在 [Git 全域設定] 頁面 (適用於您的所有存放庫) 或 [Git 存放庫設定] 頁面 (適用於目前的存放庫) 上的 [選項] 對話方塊中,檢視和設定這些設定和喜好設定。

您可以設定兩種類型的設定:

  • Git 設定 - 本節中的設定會對應至儲存在 Git 組態檔中的 Git 設定。 您可以在 Visual Studio 中檢視和修改這些設定,但這些設定是由 Git 組態檔管理。
  • Visual Studio 設定 - 本節中的設定會設定由 Visual Studio 管理的 Git 相關設定和喜好設定。

如何進行設定

  1. 若要在 Visual Studio 中設定 Git 設定,請從最上層 Git 功能表選擇 [設定]

    The Git menu with a callout to the Settings command.

  2. 選擇 [Git 全域設定] 或 [Git 存放庫設定] 以檢視及設定全域層級或存放庫層級設定。

    The navigation pane in the Options dialog box with a callout to Git settings.

  3. 您可以設定數個常見的 Git 設定,如本文下列各節所述。 設定所需的設定之後,請選取 [確定] 以儲存更新的設定。

    The display area of the Options dialog box with a callout to the OK button.

Git 設定

您也可以設定及檢查一些最常見的 Git 組態設定。 您可以在 Visual Studio 中檢視和修改下列設定,即使這些設定是由 Git 組態檔管理也一樣。

注意

Visual Studio [全域設定] 中設定的 Git 設定對應至 Git 使用者特定組態檔中的設定,而 [存放庫設定] 中的設定對應至存放庫特定組態檔中的設定。 如需 Git 組態的詳細資訊,請參閱自訂 Git 的 Pro Git 章節git-config 文件組態檔的 Pro Git 參考。 若要設定 Visual Studio 中未公開的 Git 設定,請使用 git config 命令將值寫入組態檔:git config [--local|--global|--system] section.key value

名稱和電子郵件

您提供的名稱和電子郵件將會用來作為您所做任何提交的提交者資訊。 此設定可在全域和存放庫範圍使用,並對應至 git configuser.nameuser.email 設定。

  1. 從 Git 功能表,移至 [設定]。 若要在全域層級設定您的使用者名稱和電子郵件,請移至 [Git 全域設定];若要在存放庫層級設定您的使用者名稱和電子郵件,請移至 [Git 存放庫設定]

  2. 提供您的使用者名稱和電子郵件,然後選擇 [確定] 以儲存。

    Git Global settings pane in Options dialog box with a callout to username an email.

在擷取期間剪除遠端分支

剪除會移除不再存在於遠端的遠端追蹤分支,協助您保護分支清單的整潔與最新狀態。 此設定可在全域和存放庫範圍使用,並對應至 git configfetch.prune 設定。

我們建議在全域層級將此選項設定為 [True]。 有效設定如下所示:

  • True (建議)
  • False
  • 取消設定 (預設值)

以下顯示如何變更設定:

  1. 從 Git 功能表,移至 [設定]。 移至 [Git 全域設定],在全域層級設定此選項;移至 [Git 存放庫設定],在存放庫層級設定此選項。

  2. 將 [在擷取期間剪除遠端分支] 設定為 [True] (建議)。 選取 [確定] 以儲存。

    Screenshot that shows 'Prune remote branches during fetch' highlighted and with 'True' selected from the drop-down.

在提取時將本機分支重訂基底

拋開最新分支 (不在上游分支) 中的提交所做的變更而重訂基底,會將最新分支重設為上游分支,然後套用原本拋開的變更。 此設定可在全域和存放庫範圍使用,並對應至 git configpull.rebase 設定。 有效設定如下所示:

  • True:擷取之後在上游分支之上將最新分支重訂基底。

  • False:將最新分支合併至上游分支。

  • 取消設定 (預設值):除非在其他組態檔中指定,否則將最新分支合併至上游分支。

  • 互動式:以互動模式重訂基底。

  • 合併:重訂基底,不需要壓平合併本機建立的合併提交。

    注意

    在 Visual Studio 2022 17.2 版中,我們已將「保留」設定變更為「合併」,以符合 Git 的最新更新。 因此,如果您使用舊版 Visual Studio 搭配 Git 工具,您的使用者介面可能會顯示「保留」而非「合併」。 不過,功能會維持不變。

以下顯示如何變更設定:

  1. 從 Git 功能表,移至 [設定]。 移至 [Git 全域設定],在全域層級設定此選項;移至 [Git 存放庫設定],在存放庫層級設定此選項。

  2. 將 [在提取時將本機分支重訂基底] 設定為想要的設定,然後選取 [確定] 以儲存。

    Screenshot that shows 'Rebase local branch when pulling' highlighted and 'Merges' selected from the drop-down.

您無法在 Visual Studio 中將 pull.rebase 設定為 [互動式]。 Visual Studio 沒有互動式重訂基底支援。 若要將 pull.rebase 設定為使用互動式模式,請使用命令列。

密碼編譯網路提供者

密碼編譯網路提供者是全域範圍的 Git 組態設定,可設定要在執行階段使用的 TLS/SSL 後端,並對應至 git confighttp.sslBackend 設定。 值如下所示:

  • OpenSSL:針對 TLS 和 SSL 通訊協定使用 OpenSSL
  • 安全通道:針對 TLS 和 SSL 通訊協定使用安全通道 (schannel)。 Schannel 是原生 Windows 解決方案,可存取 Windows 認證存放區,進而允許整個企業的憑證管理。
  • 取消設定 (預設值):如果此設定取消設定,則 OpenSSL 是預設值。

以下顯示如何變更設定:

  1. 從 Git 功能表,移至 [設定]。 移至 [Git 全域設定] 來進行設定。

  2. 將 [密碼編譯網路提供者] 設定為所需的值,然後選取 [確定] 以儲存。

    Screenshot that shows 'Cryptographic network provider' highlighted with 'OpenSSL' selected from the drop-down.

認證協助程式

當 Visual Studio 執行遠端 Git 作業時,遠端端點可能會拒絕要求,因為要求需要提供認證。 此時,Git 會叫用認證協助程式,這會傳回執行作業所需的認證,然後再次嘗試要求。 所使用的認證協助程式會對應至 git configcredential.helper 設定。 可在全域範圍內使用下列值:

  • GCM for Windows:使用 Git Credential Manager for Windows 作為協助程式。
  • GCM Core:使用 Git Credential Manager Core 作為協助程式。
  • 取消設定 (預設值):如果此設定取消設定,則會使用系統組態中設定的認證協助程式。 從 Git for Windows 2.29 起,預設認證協助程式是 GCM Core。

以下顯示如何變更設定:

  1. 從 Git 功能表,移至 [設定]。 移至 [Git 全域設定] 來進行設定。

  2. 將 [認證協助程式] 設定為所需的值,然後選取 [確定] 以儲存。

    Screenshot showing the credential helper setting in the Options dialog box.

差異 & 合併工具

Git 會在您慣用的工具中顯示差異與合併衝突。 本節中的設定會對應至 git configdiff.toolmerge.tool 設定。 您可以藉由選取 [使用 Visual Studio],在 [Git 全域設定] 和 [Git 存放庫設定] 中設定 Git 使用 Visual Studio 作為合併或差異工具。 若要設定其他差異和合併工具,請使用 git config 搭配 diff.toolmerge.tool 參數。

Screenshot that shows the section to set default Diff tool and Merge tool in the Options dialog box.

Git 檔案

您可以在 [Git 存放庫設定] 範圍中使用 [Git 檔案] 區段,來檢視和編輯存放庫的 gitignoregitattributes 檔案。

Screenshot that shows the section to view and edit the Ignore and attributes files in your repository.

遠端

您可以使用 [Git 存放庫設定] 底下的 [遠端] 窗格來設定存放庫的遠端。 此設定會對應至 git remote 命令,可讓您新增、編輯或移除遠端。

Screenshot showing the Git Remotes pane in the Options dialog box.

其他設定

若要檢視所有其他 Git 組態設定,您可以開啟和檢視組態檔本身,也可以執行 git config --list 來顯示設定。

Visual Studio 設定

下列設定會管理 Visual Studio 中的 Git 相關喜好設定,並且是由 Visual Studio 管理,而不是由 Git 組態檔管理。 本節中的所有設定都會在 [Git 全域設定] 頁面中設定。

預設位置

預設位置會設定複製存放庫的預設資料夾。

Screenshot showing the default location field in the Options dialog box.

開啟存放庫時,關閉不在 Git 下的已開啟解決方案

根據預設,當您切換到另一個存放庫時,Visual Studio 會關閉任何開啟的解決方案或資料夾。 這樣做時,也會根據您選擇開啟 Git 存放庫時,在方案總管中開啟資料夾開啟 Git 存放庫時,在方案總管中開啟資料夾,載入新存放庫的解決方案或資料夾。 這會維護開啟程式碼與開啟存放庫之間的一致性。 不過,如果您的解決方案不在與存放庫相同的資料夾根目錄中,您可能會想要在切換至解決方案的存放庫時讓解決方案保持開啟。 您可以使用此設定來執行此動作。 值如下所示:

  • :開啟存放庫時,目前開啟的解決方案一律會關閉

  • :開啟存放庫時,Visual Studio 會檢查目前解決方案是否在 Git 底下。 如果不是,則解決方案會保持開啟狀態。

  • 一律詢問 (預設值):設定此選項時,您可以透過每個存放庫開啟的對話方塊進行選擇,不論您要讓目前的解決方案保持開啟或關閉。

    Screenshot showing the close solution setting in the Options dialog box.

啟用從第三方來源下載作者影像的功能

啟用從第三方來源下載作者影像的功能是全域範圍的 Visual Studio 特定設定。 核取時,會從 Gravatar 影像服務下載作者影像 (如果有的話),並顯示在提交和歷程記錄檢視中。

Screenshot showing checkbox to enable download of author images from third-party source in the Options dialog box.

重要

為了在提交和歷程記錄檢視中提供作者影像,此工具會為儲存在使用中存放庫中的作者電子郵件地址建立 MD5 雜湊。 然後,此雜湊會傳送至 Gravatar,以尋找先前已註冊服務的使用者相符雜湊值。 如果找到相符項目,則會從服務擷取使用者影像,並顯示在 Visual Studio 中。 未設定服務的使用者將會傳回隨機產生的影像。 請注意,Visual Studio 不會記錄電子郵件地址,也不會與 Gravatar 或任何其他第三方共用。

依預設在合併後認可變更

當啟用依預設在合併後提交變更時,Git 會在分支與最新分支合併時自動建立新的提交。

Screenshot showing the checkbox to commit changes after merge by default in the Options dialog box.

  • 核取時,Visual Studio 所發出的 git merge 命令會與 --commit 選項搭配執行。
  • 取消核取時,Visual Studio 所發出的 git merge 命令會與 --no-commit --no-ff 選項搭配執行。

如需這些選項的詳細資訊,請參閱 --commit 和 --no-commit--no-ff

啟用推送 --強制租用

啟用時,此設定可讓您從 Visual Studio 內 push --force-with-lease。 根據預設,[啟用 push --force-with-lease] 已停用。

Screenshot showing the checkbox to enable push force with lease in the Options dialog box.

如需詳細資訊,請參閱 push --force-with-lease

開啟 Git 存放庫時,在方案總管中開啟資料夾

當您使用 Visual Studio 開啟或切換至 Git 存放庫時,Visual Studio 會載入 Git 內容,以便從 IDE 中檢視變更、提交、分支及管理您的存放庫。 此外,Visual Studio 也會在 [方案總管] 中載入存放庫的程式碼。 Visual Studio 會掃描存放庫資料夾以尋找解決方案、CMakeLists.txt,或任何其他檢視檔案,以將其辨識並顯示為 [方案總管] 中的清單。 您可以從該處選取要載入的解決方案,或選取資料夾來檢視目錄內容。 當您關閉此核取方塊時,Visual Studio 不會在 [方案總管] 中開啟存放庫資料夾。 這基本上可讓您僅以 Git 存放庫管理員的身分開啟 Visual Studio。 此設定預設為開啟。

Screenshot showing the checkbox to open folder when opening a Git repository in the Options dialog box.

在開啟 Git 存放庫時自動載入解決方案

只有在開啟開啟 Git 存放庫時,在方案總管中開啟資料夾設定時,才適用此設定。 當您在 Visual Studio 中開啟 Git 存放庫,而後續資料夾掃描偵測到存放庫中只有一個解決方案時,Visual Studio 會自動載入該解決方案。 如果您關閉設定,則 [方案總管] 會在檢視清單中顯示存放庫中的單一解決方案。 但是不會載入解決方案。 根據預設,這個設定為關閉。

Screenshot showing the checkbox to automatically load the solution when opening a Git repository in the Options dialog box.

自動使用按兩下或 Enter 鍵來簽出分支

[Git 存放庫] 視窗有以樹狀結構顯示的分支清單。 單一選取分支將會切換提交歷程記錄窗格,以顯示所選取分支的提交。 若要簽出分支,您可以按一下滑鼠右鍵以開啟捷徑功能表,然後選取 [簽出]。 如果您開啟此設定,則按兩下或按 Enter 鍵將會簽出分支並顯示其提交。

Screenshot showing the checkbox to check out branches with double-click or Enter key in the Options dialog box.

重要

若您有任何建議,請讓我們知道! 我們很感激有機會透過開發人員社群入口網站與您進行設計決策。