在 Windows 子系統 Linux 版 開始使用 Git

Git 是最常用的版本控制系統。 透過 Git,您可以追蹤您對檔案所做的變更,因此您有已完成的記錄,並能夠視需要還原為舊版的檔案。 Git 也會讓共同作業更容易,讓多位人員全都合併成一個來源。

Git 可以安裝在 WSL 上的 Windows AND 上

重要考慮:當您啟用 WSL 並安裝 Linux 發行版本時,您會安裝新的檔案系統,與 Windows NTFS C:\ 分開在您的電腦上磁片磁碟機。 在 Linux 中,磁片磁碟機未指定字母。 它們會提供掛接點。 檔案系統 / 的根目錄是 WSL 的根分割區或資料夾的掛接點。 下方 / 的所有專案都不是相同的磁片磁碟機。 例如,在膝上型電腦上,我已安裝兩個版本的 Ubuntu (20.04 和 18.04) ,以及 Debian。 如果我開啟這些散發套件,請使用 命令 cd ~ 選取主目錄,然後輸入 命令 explorer.exe . ,Windows 檔案總管將會開啟並顯示該散發套件的目錄路徑。

Linux 散發版本 存取主資料夾的 Windows 路徑
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

提示

如果您要從 WSL 散發套件命令列存取 Windows 檔案目錄,而不是 C:\Users\username ,則會使用 /mnt/c/Users/username 存取目錄,因為 Linux 散發套件會將您的 Windows 檔案系統視為掛接的磁片磁碟機。

您必須在您想要搭配使用 Git 的每個檔案系統上安裝 Git。

依散發版本顯示 Git 版本

安裝 Git

Git 已隨大部分Windows 子系統 Linux 版發行版本一起安裝,不過,您可能想要更新為最新版本。 您也需要設定 Git 組態檔。

若要安裝 Git,請參閱 適用于 Linux 的 Git 下載網站。 每個 Linux 發行版本都有自己的套件管理員並安裝命令。

如需 Ubuntu/Debian 中最新的穩定 Git 版本,請輸入命令:

sudo apt-get install git

注意

如果您尚未 安裝 Git for Windows ,您可能也想要安裝。

Git 組態檔設定

若要設定 Git 組態檔,請開啟您正在使用之散發套件的命令列,並使用此命令設定名稱, (以慣用的使用者名稱取代 「Your Name」) :

git config --global user.name "Your Name"

使用此命令設定電子郵件, (以您偏好的電子郵件取代 「 youremail@domain.com 」) :

git config --global user.email "youremail@domain.com"

提示

如果您還沒有 GitHub 帳戶,您可以在 GitHub 上註冊一個帳戶。 如果您之前從未使用過 Git,GitHub 指南可以協助您開始使用。 如果您需要編輯 Git 設定,您可以使用內建文字編輯器來執行此動作,例如 nano: nano ~/.gitconfig

建議您 使用雙因素驗證來保護您的帳戶, (2FA)

Git 認證管理員設定

Git Credential Manager (GCM) 是建置在 .NET 上的安全 Git 認證協助程式,可搭配 WSL1 與 WSL2 搭配使用。 它可為 GitHub 存放庫、Azure DevOps、Azure DevOps Server和 Bitbucket 啟用多重要素驗證支援。

GCM 會整合到 GitHub 等服務的驗證流程中,一旦您向主機提供者進行驗證後,會要求新的驗證權杖。 然後,它會安全地將權杖儲存在 Windows 認證管理員中。 第一次之後,您可以使用 Git 與主機提供者通訊,而不需要重新驗證。 其只會在 Windows 認證管理員中存取權杖。

若要搭配 WSL 使用 GCM,您必須Windows 10 1903 版或更新版本。 這是第一個版本的 Windows,其中包含 GCM 在 WSL 發行版本中用來與 Git 交互操作的必要 wsl.exe 工具。

建議您安裝 最新的適用于 Windows 的 Git ,以便共用 & WSL 與 Windows 主機之間的認證設定。 Git Credential Manager 隨附于適用于 Windows 的 Git,而最新版本會包含在每個適用于 Windows 的新 Git 版本中。 在安裝期間,系統會要求您選取認證協助程式,並將 GCM 設定為預設值。

如果您基於不安裝適用于 Windows 的 Git 的原因,可以直接在 WSL 發行版本中安裝 GCM 作為 Linux 應用程式,但請注意,這樣做表示 GCM 是以 Linux 應用程式的形式執行,而且無法利用主機 Windows 作業系統的驗證或認證儲存功能。 如需如何在 不使用適用于 Windows 的 Git 的情況下設定 WSL的指示,請參閱 GCM 存放庫。

若要設定 GCM 以搭配 WSL 散發套件使用,請開啟您的散發套件,然後輸入此命令:

如果已安裝 > GIT = v2.39.0

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

如果已安裝 GIT = v2.36.1,則為 > else

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"

如果 version 為 < v2.36.1,請輸入下列命令:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

注意

使用 GCM 作為 WSL Git 安裝的認證協助程式,表示 GCM 預設不會遵守 WSL Git 中設定的任何組態 () 。 這是因為 GCM 是以 Windows 應用程式的形式執行,因此會使用 Git for Windows 安裝來查詢設定。 這表示 GCM 的 Proxy 設定等專案必須在適用于 Windows 的 Git 中設定,以及 WSL Git,因為它們儲存在不同的檔案中 (%USERPROFILE%\.gitconfig\\wsl$\distro\home\$USER\.gitconfig) 。 您可以設定 WSL,讓 GCM 使用 WSL Git 設定,但這表示 Proxy 設定對特定 WSL 安裝而言是唯一的,而不會與其他或 Windows 主機共用。

使用 SSH 的 Git

Git 認證管理員僅適用于 HTTP (S) 遠端。 您仍然可以搭配 SSH 使用 Git:

Azure 的其他設定

如果您想要使用Azure ReposAzure DevOps,則需要一些額外的設定:

git config --global credential.https://dev.azure.com.useHttpPath true

現在,您在 WSL 散發套件內執行的任何 Git 作業都會使用 GCM。 如果您已為主機快取了認證,則其會從認證管理員來存取認證。 如果沒有,則即使在 Linux 主控台中,也會收到對話回應要求您提供認證。

提示

如果您使用 GPG 金鑰進行程式碼簽署安全性,您可能需要 將 GPG 金鑰與您的 GitHub 電子郵件產生關聯

新增 Git Ignore 檔案

建議您將 .gitignore 檔案 新增至您的專案。 GitHub 提供 一組實用的 .gitignore 範本, 其中包含根據使用案例組織的建議 .gitignore 檔案設定。 例如,以下是 Node.js專案 GitHub 的預設 gitignore 範本

如果您選擇 使用 GitHub 網站建立新的存放庫,有一個核取方塊可用來初始化存放庫的讀我檔案、針對特定專案類型設定的 .gitignore 檔案,以及視需要新增授權的選項。

Git 和 VS Code

Visual Studio Code隨附 Git 的內建支援,包括原始檔控制索引標籤,其中會顯示您的變更,並為您處理各種 Git 命令。 深入瞭解 VS Code 的 Git 支援

Git 行結尾

如果您要在 Windows、WSL 或容器之間使用相同的存放庫資料夾,請務必設定一致的行尾。

由於 Windows 和 Linux 使用不同的預設行尾端,所以 Git 可能會報告大量修改過的檔案,除了其行尾端之外沒有差異。 若要避免發生這種情況,您可以使用檔案或在 Windows 端全域停用行結束轉換 .gitattributes 。 請參閱此 VS Code 檔,以瞭解如何解決 Git 行結尾問題

其他資源