在進行開發工作時,可能會使用不同的 Git 帳號做登入和推送的情形,例如: 公司的 Git 帳號和個人的帳號,這樣做的好處是為了確保開發工作能清楚劃分,所以需要做切換帳號的動作,特別是在不同的專案間切換 commit 的對象,因此有了這篇文紀錄這個過程。
讓我們一起開始,在同一台電腦切換不同的 Github 帳號
在 terminal 輸入指令,產生新的金鑰
ssh-keygen -t rsa -C "karenkaok@gmail.com"
會跳出這樣的訊息
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
因此輸入我們想存放 key 的位置
/Users/user/.ssh/id_rsa_karen
會再跳出輸入密碼的訊息,可以不加密
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
用這個指令查看目前有哪些金鑰
ssh-add -l
可以看到顯示有 sha256 的資訊以及尾端 email
要將金鑰加入代理,如果有兩把的話要執行兩次
ssh-add ~/.ssh/id_rsa_karen
編輯 config
cd ~/.ssh/
touch config
open config
編輯內容
#公司帳號
Host github-company
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_company
#私人帳號
Host github-karen
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_karen
先複製金鑰內容
pbcopy < ~/.ssh/id_rsa_karen.pub
打開 Github > setting > SSH and GPG keys
按下 new key,把剛剛複製的內容貼在這裡,這樣就完成了
ssh -T github-karen
成功的話會跳出以下的訊息
Hi [Username]! You've successfully ...
git config user.name "karen"
git config user.email "karenl@example.com"
之後就可以 commit and push 了!
ssh-add -D
git config -l
git config — global — unset user.name
git config — global — unset user.email
git credential-cache erase
經過這些步驟,已經可以在一台電腦中,根據專案切換不同的 github 帳號了,這樣也可以讓開發的過程中切的乾淨。
希望這篇文章有幫助到在找切換 github 帳號方法的你,我們下次見!
如果遇到push 的時候 denied 錯誤的帳號,例如 A/testrepo 但是 push 時不成功,還 denied B,這樣可能表示切換沒有成功。
但檢查 git config 的時候也是正常的。
最後加上
git config credential.username “KarenKaoK
這就會在 config 加上這行,然後就可以推成功!