Git技巧 兩個Git帳號如何在一台電腦上共存

2021-07-27 15:07:15 字數 1616 閱讀 5844

相信很多開發者都會遇到在自己的電腦上使用不止乙個git帳號的情況。乙個一般是自己的github帳號,另乙個則是公司的git帳號,比如gitlab、bitbucket等。如果採用https方式通訊,那麼git帳號間不會有衝突,但你在每次pull、push的時候都要輸入帳號密碼,十分繁瑣。而且當**庫達到十分龐大的規模時,如果仍然採用https方式,在git pull時可能出現超時不響應的情況,此時只能採用ssh方式。ssh在配置完ssh key後使用起來很方便,但是git帳號間可能出現衝突,這時候該如何解決呢?

配置ssh key的方式此處不再贅述,假設.ssh資料夾下有id_rsa、id_rsa.pub、didi_id_rsa、didi_id_rsa.pub,分別對應個人github帳號私鑰公鑰以及公司git帳號私鑰公鑰。如果不進行設定,使用github賬號時沒有問題,但是使用公司賬號時,由於預設情況下私鑰存放在id_rsa檔案中,因此git仍會嘗試用id_rsa中而不是didi_id_rsa中的私鑰去與伺服器上新增的公鑰進行比對,自然而然會報錯。通常這種情況下git會讓你輸入密碼,筆者連續三次輸入密碼錯誤(其實根本不知道該密碼為何物),報錯,permission denied。

網路上的解決方案普遍為在ssh的配置檔案中加入以下字段:

host github.com

hostname github.com

user boy-a

identityfile /user//.ssh/id_rsa

host git.xiaojukeji.com

hostname git.xiaojukeji.com

user boy-b

identityfile /user//.ssh/didi_id_rsa

1.取消global

git config --global --unset user.name

git config --global --unset user.email

2.設定每個專案repo的自己的user.email

git config user.email "***[email protected]"

git config user.name "ddfe"

如此,各個git帳號間就可以「井水不犯河水」了。

但是,最麻煩的地方其實並不在這裡,而是這個配置檔案究竟位於何處。根據網友的分享,window系統中,該配置資訊存放在名為config的檔案中,位置在~/.ssh/目錄下,而在linux/unix系統中配置資訊則儲存在ssh_config檔案中,至於位置,眾說紛紜。筆者使用的是macos系統,嘗試用「ssh -vt [email protected]」去檢視ssh連線主機的debug資訊,終於發現了頭緒,debug資訊的第二行如下:

debug1: reading configuration data /etc/ssh/ssh_config
終於找到了檔案的位置!修改之,大功告成!

使用命令「ssh -vt git@***.com」檢視ssh_config檔案的位置

進入ssh_config檔案,配置各個git帳號的user以及identityfile

在各個專案中配置好user.name以及user.email

在各個git帳號間盡情穿梭吧~

如何在兩個Google 帳號間搬移雲端硬碟資料?

google drive 是很多人依賴的雲端空間,甚至會多開乙個帳號來使用,如果要在兩個帳號間移動google drive 的資料該怎麼做?尤其是這兩天的新聞說google 要收回教育帳號的無上限容量服務,相信很多人要開始把檔案從教育帳號中搬出來了。以下的方法中,原本擁有檔案的google 帳號暫且...

如何在兩個Google 帳號間搬移雲端硬碟資料?

google drive 是很多人依賴的雲端空間,甚至會多開乙個帳號來使用,如果要在兩個帳號間移動google drive 的資料該怎麼做?尤其是這兩天的新聞說google 要收回教育帳號的無上限容量服務,相信很多人要開始把檔案從教育帳號中搬出來了。以下的方法中,原本擁有檔案的google 帳號暫且...

如何在兩個Google帳號間搬移雲端硬碟資料?

google drive 是很多人依賴的雲端空間,甚至會多開乙個帳號來使用,如果要在兩個帳號間移動google drive 的資料該怎麼做?尤其是這兩天的新聞說google 要收回教育帳號的無上限容量服務,相信很多人要開始把檔案從教育帳號中搬出來了。以下的方法中,原本擁有檔案的google 帳號暫且...