共用方式為


開始使用適用於Linux的 Windows 子系統上的 Git

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

Git 可以安裝在 Windows 和 WSL 上

重要考慮:當您啟用 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 已隨大部分適用於 Linux 的 Windows 子系統發行版一起安裝,不過,您可能想要更新為最新版本。 您也需要設定 Git 組態檔。

若要安裝 Git,請參閱 Git Download for Linux 網站。 每個 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 Guides 可協助您開始使用。 如果您需要編輯 Git 設定,您可以使用內建文字編輯器,例如 nano:nano ~/.gitconfig

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

Git 認證管理員設定

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

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

若要搭配 WSL 使用 GCM,您必須在 Windows 10 版本 1903 或更新版本上。 這是第一個包含了 GCM 用於在 WSL 發行版中與 Git 互通所需的必備 wsl.exe 工具的 Windows 版本。

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

如果您有理由不安裝 Git for Windows,可以直接在 WSL 散發套件中安裝 GCM 作為 Linux 應用程式,但請注意,這樣做表示 GCM 是以 Linux 應用程式的形式執行,而且無法利用主機 Windows作系統的驗證或認證儲存功能。 如需如何在不使用 Git for Windows 的情況下設定 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,否則,

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

否則,如果版本 < v2.36.1,請輸入此命令:

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

注意

使用 GCM 作為 WSL Git 安裝的認證協助程式,表示 GCM 不會遵守 WSL Git 中的任何組態集(根據預設)。 這是因為 GCM 是以 Windows 應用程式的形式執行,因此會使用 Git for Windows 安裝來查詢組態。 這表示 GCM 的 Proxy 設定等項目必須在 Git for Windows 和 WSL Git 中設定,因為它們會儲存在不同的檔案中(%USERPROFILE%\.gitconfig vs \\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 檔案設定。 例如,這是 GitHub 的預設 gitignore 樣本 ,適用於 Node.js 項目

如果您選擇 使用 GitHub 網站建立新的存放庫,可以選擇勾選方框來初始化存放庫,這些方框包括:新增自述檔、設定符合您的專案類型的 .gitignore 檔案,以及在需要時添加授權選項。

Git 和 VS Code

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

Git 行結尾

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

Git 可能會顯示大量的修改過的檔案,而這些檔案除了行尾符號沒有差異,這是由於 Windows 和 Linux 使用不同的預設行尾結束。 若要避免這種情況發生,您可以使用 .gitattributes 檔案或全域在 Windows 端停用行尾轉換。 請參閱此 VS Code 文件,以解決 Git 行結尾問題。

其他資源