這個小技巧適用於在一台電腦上同時使用多個 Github 帳號的情境,像是開發 Side Project 時都用個人 Github 帳號,但工作專案則要改由公務用 Github 帳號 Commit 及 Push。

這算實務常見需求,很快就找到解答

江湖一點訣:來源 Github URL 加上 Github 使用者名稱即可,若在專案中的署名及 Email 名稱與全域設定不同,記得也要修改。

借用我的 Passkey Demo 專案當例子,Github 使用者名稱是 darkthread、專案名稱 passkey-demo。

假設我在某台電腦都是用另一個 Github 帳號 blahblah 在維護專案,獨獨這個專案要改用 darkthread。在沒特別設定的情況下,若我 clone 專案開新 branch 再 push,一定會被擋下來,因為 blahblah 沒有更新權限:

git clone https://github.com/darkthread/passkey-demo
cd passkey-demo
git checkout -b beta
git push --set-upstream origin beta

如下圖所示,push 會得到 HTTP 403,原因為 Permission Denied:

此時我們用 git 指令修改設定,在 origin URL 前方加上 darkthread@ 並設定姓名及 Email (記得勿加 -g,這個設定只套用在專案而非全域):

# git remote set-url origin https://<USERNAME>@github.com/<USERNAME>/<PROJECTNAME>.git
git remote set-url origin https://darkthread@github.com/darkthread/passkey-demo
git config user.name Jeffrey
git config user.email example@hotmail.com

修改完成再 git push 便會彈出登入提示:

成功登入後,就會改用 darkthread 帳號 push 了。而使用 Windows 密碼管理員檢視,可發現多了一筆 git:https://<username>@github.com,如此就可實現切換不同 Github 帳號維護特定專案囉~


Comments

# by mars

之前也碰過類似困擾,然後我是用 https://git-scm.com/docs/git-config#_conditional_includes 然後分不同資料夾搞定

Post a comment