工作中往往我們會遇到這種情況, 公司給了郵箱, 採用類似gitlab
之類的git
服務託管商, 而我們又擁有自己的github
賬戶. 閒暇之餘, 我們希望能將個人開源專案或者學習筆記之類的託管到github
上, 這時就涉及到git
的多賬號配置了.
具體流程
ssh-keygen -t rsa -C test@test.com
, 生成祕鑰, 注意不要覆蓋原有的祕鑰檔案(生成時候重新命名該祕鑰檔案, 其它直接預設即可)ssh-add -l
檢視當前電腦已經新增了多少使用者標識(也就是祕鑰),.ssh
下的id_rsa
檔案(首次新建的祕鑰檔案)不新增也可被git
感知ssh-add ~/.ssh/id_rsa_custom
, 新增自定義的祕鑰, 若報錯, 請使用ssh-agent bash
開啟bash
環境代理來執行相關的git
命令- 編輯
.ssh
目錄下的config
檔案, 不存在則新建即可. 該檔案內容如下:Host git@github.com HostName https://github.com User git IdentityFile ~/.ssh/id_rsa_custom複製程式碼
Host
為你的HostName
的別名, 可自定義使用(若自定義後則執行克隆時候, 使用git clone custom_name:xxx/xxx.git
, 其它操作類似)HostName
為你的git
服務託管商網址, 我這邊直接選擇的是github
User
表示你採用的是那種程式碼託管服務, 這裡採用git
IdentityFile
為你的祕鑰檔案(帶上路徑)
ssh -T git@github.com
測試自定義的賬號是否配置成功- 配置好以上後, 基本就可以進行多賬號的環境開發了. 但是一般在提交或者推送時候,
git
是需要你提供你的emai
, 此時可以將主要開發的郵件設定為全域性的(git config --global user.email primary@primary.com
, 設定全域性使用者名稱git config --global user.name primary_name
). 如果在你的開源工程或者學習工程不想使用該郵件, 則進去該工程根目錄下, 執行git config user.email test@test.com
以及git config user.name test
. 此時改工程下的使用者名稱和郵件會取代全域性的使用者名稱和郵件
bug記錄
question
:fatal: refusing to merge unrelated histories
method
:git pull origin master --allow-unrelated-histories