MultipleAccount
- 在 Windows 系統上設定多個 GitHub 帳號非常方便
- Windows可以搭配 Git Credential Manager (GCM) 來自動處理 HTTPS 驗證,或者利用資料夾分類來完全自動化切換
自動化路徑切換
- 如果您習慣將專案分類存放在不同的資料夾(例如:C:\Projects\Personal\ 和 C:\Projects\Work\),您可以利用 Git 的 includeIf 功能
- 這樣一來,只要進入該資料夾,Git 就會自動切換對應的 Email、Name 甚至是 SSH 金鑰
- 請務必使用Powershell
git config --global --edit
- 在打開的文件中加入以下設定
# 全域預設設定(例如:預設用個人帳號)
[user]
name = Your Personal Name
email = [email protected]
# 如果路徑包含 /Projects/Work/,則載入工作專案的獨立設定
[includeIf "gitdir/i:C:/Projects/Work/"]
path = .gitconfig-work
# 如果路徑包含 /Projects/Personal/,則載入個人專案的獨立設定
[includeIf "gitdir/i:C:/Projects/Personal/"]
path = .gitconfig-personal
建立對應的子設定檔
- 在 C:\Users\您的使用者名稱\ 底下,分別建立 .gitconfig-work 與 .gitconfig-personal 兩個文字檔
- gitconfig-work
[user]
name = Your Work Name
email = [email protected]
# 如果有配合第一步的 SSH 機制,可加上這行自動指定金鑰:
[core]
sshCommand = "ssh -i ~/.ssh/id_ed25519_work"
- gitconfig-personal
[user]
name = Your Personal Name
email = [email protected]
[core]
sshCommand = "ssh -i ~/.ssh/id_ed25519_pers"
生成工作帳號的金鑰
ssh-keygen -t ed25519 -C "您的工作Email" -f "$HOME\.ssh/id_ed25519_work"
生成個人帳號的金鑰
ssh-keygen -t ed25519 -C "您的個人Email" -f "$HOME\.ssh/id_ed25519_pers"
將金鑰內容貼到 GitHub
- 要將公鑰貼到 GitHub,您需要做兩件事:第一步是從電腦複製公鑰內容,第二步是貼到 GitHub 網站上
- 複製工作帳號公鑰
type "%USERPROFILE%\.ssh\id_ed25519_work.pub"
- 畫面會印出一整行以 ssh-ed25519 開頭、以您的 Email 結尾的長字串。請用滑鼠選取這整段文字(包含開頭和結尾),然後按下鍵盤的 Ctrl + C 複製
- 請開啟瀏覽器,登入您對應的 GitHub 帳號
- Setting > SSH and GPG Keys > New SSH Key
- Title: My Windows Laptop - Work
- Key Type: Authentication Key
- Key: 把剛剛在 CMD 複製的那段長字串貼(Ctrl + V)到這個大框框裡
- (提示:另一個帳號請登出後,登入另一個 GitHub 帳號,並重複上述步驟貼上另一把公鑰)
測試是否設定成功
- 測試工作帳號
ssh -T -i "%USERPROFILE%\.ssh\id_ed25519_work" [email protected]
- 測試個人帳號
ssh -T -i "%USERPROFILE%\.ssh\id_ed25519_pers" [email protected]
- 如果看到 Hi [您的GitHub帳號名]! You've successfully authenticated...,就代表您的金鑰完全設定成功了