工作中往往我們會(huì)遇到這種情況, 公司給了郵箱, 采用類似gitlab之類的git服務(wù)托管商, 而我們又擁有自己的github賬戶. 閑暇之余, 我們希望能將個(gè)人開源項(xiàng)目或者學(xué)習(xí)筆記之類的托管到github上, 這時(shí)就涉及到git的多賬號(hào)配置了.
具體流程
-
ssh-keygen -t rsa -C test@test.com, 生成秘鑰, 注意不要覆蓋原有的秘鑰文件(生成時(shí)候重新命名該秘鑰文件, 其它直接默認(rèn)即可) -
ssh-add -l查看當(dāng)前電腦已經(jīng)添加了多少用戶標(biāo)識(shí)(也就是秘鑰),.ssh下的id_rsa文件(首次新建的秘鑰文件)不添加也可被git感知 -
ssh-add ~/.ssh/id_rsa_custom, 添加自定義的秘鑰, 若報(bào)錯(cuò), 請使用ssh-agent bash開啟bash環(huán)境代理來執(zhí)行相關(guān)的git命令 - 編輯
.ssh目錄下的config文件, 不存在則新建即可. 該文件內(nèi)容如下:Host git@github.com HostName https://github.com User git IdentityFile ~/.ssh/id_rsa_custom-
Host為你的HostName的別名, 可自定義使用(若自定義后則執(zhí)行克隆時(shí)候, 使用git clone custom_name:xxx/xxx.git, 其它操作類似) -
HostName為你的git服務(wù)托管商網(wǎng)址, 我這邊直接選擇的是github -
User表示你采用的是那種代碼托管服務(wù), 這里采用git -
IdentityFile為你的秘鑰文件(帶上路徑)
-
-
ssh -T git@github.com測試自定義的賬號(hào)是否配置成功 - 配置好以上后, 基本就可以進(jìn)行多賬號(hào)的環(huán)境開發(fā)了. 但是一般在提交或者推送時(shí)候,
git是需要你提供你的emai, 此時(shí)可以將主要開發(fā)的郵件設(shè)置為全局的(git config --global user.email primary@primary.com, 設(shè)置全局用戶名git config --global user.name primary_name). 如果在你的開源工程或者學(xué)習(xí)工程不想使用該郵件, 則進(jìn)去該工程根目錄下, 執(zhí)行git config user.email test@test.com以及git config user.name test. 此時(shí)改工程下的用戶名和郵件會(huì)取代全局的用戶名和郵件
bug記錄
-
question:fatal: refusing to merge unrelated histories -
method:git pull origin master --allow-unrelated-histories