git多賬號配置

貓xian森發表於2017-10-11

工作中往往我們會遇到這種情況, 公司給了郵箱, 採用類似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

相關文章