之前做自己的項(xiàng)目,上傳github之后,再更新公司項(xiàng)目,發(fā)現(xiàn)公司項(xiàng)目里的git賬號(hào)變成私人的了。git管理雖然很高級(jí),但是配置真的傷死腦筋,為了同時(shí)使用2個(gè)賬號(hào),也折騰了一番。
git使用的是SSH加密協(xié)議,github網(wǎng)站里用戶setting中需要配置相應(yīng)的SSH keys,這些keys是在C:\Users\Administrator.ssh下管理的。如果需要管理2個(gè)賬戶,一般要生成2套SSH key。
如何生成SSH key
- 在.ssh文件夾下打開git Bash,輸入下面指令生成第一個(gè)SSH key,之后連敲3次回車就可以生成默認(rèn)的key了。
ssh-keygen -t rsa -C "a1@email.com"
- 生成第二個(gè)key時(shí),使用另外一個(gè)郵箱,跟生成第一個(gè)Key有點(diǎn)區(qū)別,在輸入保存名稱時(shí),要自主命名一下。
ssh-keygen -t rsa -C "a2@email.com"
......
Enter file in which to save the key (/Users/Administrator/.ssh/id_rsa):id_rsa_2
配置config文件
新建一個(gè)config文件,內(nèi)容編輯如下:
#賬號(hào)1配置(a1@email.com)
Host gitlab.com
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa
#賬號(hào)2配置(a2@email.com)
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2
修改github中SSH keys配置
在github網(wǎng)站里用戶setting中,將id_rsa_2的內(nèi)容拷貝到新建的SSH keys中。到此其實(shí)就可以了。以下為將github上的項(xiàng)目克隆到本地。
git clone git@github.com:a2/projectName.git //a2是賬戶2的用戶名
TortoiseGit設(shè)置
如果想用TortoiseGit來管理git,還需要繼續(xù)配置。
TortoiseGit使用的是擴(kuò)展名為ppk的密鑰,而不是ssh-keygen生成的rsa密鑰。因此需要用到TortoiseGit的putty key generator工具來生成適用于TortoiseGit的ppk密鑰。
使用putty key generator可以生成成套的適用git的rsa密鑰和適用于TortoiseGit的ppk密鑰,這里只用上面已生成的rsa密鑰來生成ppk密鑰

將剛才生成的id_rsa_2引入,生成ppk密鑰,還存在.ssh中。在剛才從git上克隆到本地的項(xiàng)目中打開TortoiseGit的setting按下圖配置。

基本到這步也應(yīng)該可以了,但是我又遇到一個(gè)問題,就是在push代碼的時(shí)候一直報(bào)錯(cuò):error: cannot spawn C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe: No such file or directory fatal: unable to fork
發(fā)現(xiàn)是因?yàn)槲业腡ortoiseGit是安裝在D盤的,所以找不到。仍然要改setting中的配置,但是只改路徑時(shí),怎么都應(yīng)用保存不了,百度半天也無解。最最后勾選了上面代理的選項(xiàng),才保存進(jìn)去了。

至此終于可以通過TortoiseGit上傳github了,公司的項(xiàng)目也可以正常拉取。
后記
其實(shí)公司的git是配置在gitlab上,沒有使用SSH來管理,所以個(gè)人的github賬戶配置也沒有這么麻煩。正常生成一組公私密鑰,即id_rsa和id_rsa.pub,將id_rsa.pub拷貝到github里setting的新建SSH keys中,使用SSH地址去克隆項(xiàng)目到本地就行了,TortoiseGit也能正常使用!