1. 背景
在開發工作中,我需要同時使用2個代碼托管平臺:公司統一使用的GitLab和個人學習用的 Gitee。我希望能夠在同一臺電腦上方便地管理和提交兩個平臺的代碼,實現賬號和提交內容的有效隔離。
前提條件:
- 已安裝Git Bash、TortoiseGit及相關工具鏈;
- 已完成GitLab環境配置(SSH密鑰已部署)
2. 實現步驟
2.1. 在.ssh目錄生成gitee對應的RSA密鑰
進入電腦.ssh的目錄,一般為C:\Users\Administrator\.ssh,右鍵點擊Git Bash here,輸入如下命令創建gitee對應的ssh key,提示輸入文件命名和密碼,命名為amber_gitee,密碼回車設為空;隨后在目錄下便生成了amber_gitee.pub(# 公鑰)和amber_gitee(# 私鑰)兩個文件。
ssh-keygen -t rsa -C 1353922342@qq.com
2.2. 將gitee對應的公鑰上傳到gitee服務器
打開amber_gitee.pub,復制ssh key,粘貼到下圖位置;
2.3.?在.ssh目錄創建config文本文件并完成配置
Git Bash here輸入命令touch config,生成config文件,打開config文件,進行相關配置;
config文件配置如下:
# gitlab
Host yeestor.gitlabHostName gitlab.yeestor.comUser amber.chenPreferredAuthentications publickeyIdentityFile C:\Users\Administrator\.ssh\id_rsa# Gitee
Host gitee.comHostName gitee.comUser amber_chenPreferredAuthentications publickeyIdentityFile C:\Users\Administrator\.ssh\amber_gitee# 配置文件參數
# Host : 可以取自己喜歡的名字,會影響git相關命令,Host mygithub 命令為 git clone git@mygithub:PopFisher/AndroidRotateAnim.git
# HostName : 真實的域名地址
# User : 配置使用用戶名
# PreferredAuthentications: 配置登錄時用什么權限認證,可設為publickey,password publickey,keyboard-interactive等
# IdentityFile : id_rsa的地址,最好寫絕對地址
2.4. 測試配置是否成功
Git Bash here輸入如下命令后會自動在.ssh目錄生成known_hosts文件,將把私鑰配置進去;
2.5. 設置全局的用戶名和郵箱
git config --global user.name 'amber_chen'?
git config --global user.email '1353922342@qq.com'
2.6. clone?gitee代碼
打開gitee上的代碼倉庫,復制其對應的clone命令,如下圖所示,執行該命令即可clone到本地;
2.7. 使用TortoiseGit push到遠端倉庫
此時可以通過TortoiseGit Commit代碼,但是不能通過TortoiseGit push到遠端,因為TortoiseGit使用的是擴展名為ppk的密鑰,而不是ssh-keygen生成的RSA密鑰。因此需要用到TortoiseGit的putty key generator工具來生成適用于TortoiseGit的ppk密鑰。
生成步驟省略,詳見文章TortoiseGit的使用教程_tortoisegit用法-CSDN博客
右鍵TortoiseGit → Settings → Remote,選擇amber_gitee.pp,應用并確定后即可通過TortoiseGit提交代碼到遠端;
參考文章:
- Windows下Git多賬號配置,同一電腦多個ssh-key的管理 - popfisher - 博客園
- 一臺電腦上配置多個git賬號(gitee),向不同git線上倉庫提交(命令行/TortoiseGit同時) 代碼_多個項目如何往不同的git網站提交代碼-CSDN博客