关于一台电脑配置多个github账号

这篇博客详细介绍了如何在一台电脑上配置多个GitHub和GitLab账号,包括生成SSH公钥私钥、配置config文件、测试连接以及克隆项目到本地。通过设置不同的主机别名和IdentityFile,可以方便地切换和管理不同的git账号。

写在前面

      日常工作学习中用到多个git账号,或是GitHub,或是gitlab或者又是gitee。不同项目、不同代码仓库协同时就需要在配置多个git账号

开始配置

1. 首先生成两个或多个ssh公钥私钥

第一个是id_rsa, 第二个命名为id_rsa_XX [,第三个命名为id_rsa_XXX],一次类推。可以使用自己熟悉的做后缀便于区分。

方法如下:

      打开在~/.ssh/ 打开git ,或则任意处打开git切换到~/.ssh/目录下。如果不切换会在当前目录下生成公钥私钥文件;

      执行:ssh-keygen -t rsa -C "XXX@163.com.cn"    XXX@163.com.cn 为你在gitlab上的注册的账号


     

     回车后,提示输入对应的文件名,不能与之前重复,会覆盖之前生成的SSH密钥,输入后直接回车,

     然后输入密码,,之后再次输入密码,也直接回车跳过,当出现下图时,表明已经生成成功了

    


2.复制公钥

  把生成好的ssh的公钥相对应复制到github[/gitlab]的settings中的SSH and GPG keys3. 


3. 配置config文件

如果在~/.ssh/下没有config文件,需要先创建config文件 :touch config
#github server one
Host github #域名地址的别名

Port 22  默认为22的可不填写
Hostname github.com #这个是真实的域名地址
User git #配置使用用户名

PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa #这里是id_rsa的地址

#github server two
Host github_two

Port 22  默认为22的可不填写
User git
Hostname github.com
User git

PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two

##如果有第三个或者更多
#gitab server
Host gitlab

Port 22  默认为22的可不填写
User git
Hostname gitlab.com
User git

PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab

注:git默认使用id_rsa.pub对应的github账号。


4. 测试

ssh -T git@gihub
#如果配置正确会提示
Hi your name one in github ! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@gihub_two
#如果配置正确会提示
Hi your name two in github ! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@gitlab
#如果配置正确会提示
Welcome to GitLab, Your GitLab nickname! 


5. Clone 项目到本地

在工作目录下,首先先git init,然后才能使用git命令clone项目到本地 
#之前的方式:单个账号
git clone git@github.com:firstAccount/xxx.git #缺省config配置时
git clone git@github:firstAccount/xxx.git #config配置后,等价于第一条语句
#现在要改为,git clone git@域名别称:用户名/项目名
git clone git@github_two:secondAccount/xxx.git //就是使用域名地址的别名来区分
git clone git@gitlab:gitlabAccount/xxx.git


6. 配置本地git用户名和邮箱(非必须项)

如果首次push repo没有配置git的账号和邮箱,可以如下配置  
#全局配置
git config --global user.name "Your name"
git config --global user.email your_email@gmail.com

##非必须项
#局部配置,如果没有局部配置,默认用全局配置否则优先使用局部配置
cd ~/workspace/github_two/
git init
git config user.name "Your name"
git config user.email your_email@gmail.com
END。

### 配置不同Git账号提交代码(不使用SSH config) 在不使用SSH配置文件的前提下,可以通过为每个Git账号生成独立的SSH密钥,并在每次提交代码时手动指定SSH密钥来实现多个Git账号的管理。 #### 生成独立SSH密钥 为每个Git账号生成一组独立的SSH密钥。例如,针对GitHubGitLab分别生成不同的密钥: ```bash # 生成GitHub账号SSH密钥 ssh-keygen -t rsa -C "github@example.com" -f ~/.ssh/id_rsa_github # 生成GitLab账号SSH密钥 ssh-keygen -t rsa -C "gitlab@example.com" -f ~/.ssh/id_rsa_gitlab ``` 生成密钥后,需要将对应的公钥内容(`.pub`文件)添加到对应平台的SSH密钥管理界面中。 #### 手动指定SSH密钥进行Git操作 每次执行Git操作时,可以通过`GIT_SSH_COMMAND`环境变量指定使用的SSH密钥。例如克隆仓库时可以这样操作: ```bash # 使用GitHubSSH密钥克隆仓库 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git clone git@github.com:username/repo.git # 使用GitLabSSH密钥克隆仓库 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git clone git@gitlab.com:username/repo.git ``` 提交代码时,同样可以使用该方式指定SSH密钥: ```bash # 提交代码时指定GitHubSSH密钥 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git push origin main # 提交代码时指定GitLabSSH密钥 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git push origin main ``` 这种方式避免了对`~/.ssh/config`文件的依赖,同时确保了不同账号之间的隔离性[^1]。 #### 配置本地仓库用户信息 每个Git仓库可以配置独立的用户名和邮箱信息,以确保提交记录与对应账号一致: ```bash cd repo_path git config user.name "GitHubUser" git config user.email "github@example.com" ``` 对于另一个仓库: ```bash cd another_repo_path git config user.name "GitLabUser" git config user.email "gitlab@example.com" ``` 通过这种方式,可以确保提交记录与对应的Git账号保持一致,避免混淆。 #### 简化操作方式 为了避免重复输入SSH密钥路径,可以将常用命令封装为别名: ```bash # ~/.bashrc 或 ~/.zshrc 中添加 alias git-github='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git' alias git-gitlab='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git' ``` 然后执行: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` 使用时可以直接运行: ```bash git-github clone git@github.com:username/repo.git git-gitlab clone git@gitlab.com:username/repo.git ``` 这样可以在不依赖SSH配置文件的前提下,灵活地管理多个Git账号。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值