赞
踩
我们可能会遇到需要使用多个git账号来操作不同仓库的情况,比如用工作账号来操作公司的gitlab,自己学习的代码则会上传到github,这时就需要管理多个账号。这里记录下git管理多账号的过程。
一般我们是会有曾设置过git的全局配置的,所以首先要清理下。
执行命令先看下是否有全局配置
git config --global --list
如果看到了user.name
和 user.email
信息,执行下面命令清除下
- git config --global --unset user.name
- git config --global --unset user.email
然后删除下以前生成的公钥和秘钥
做完前置的清理工作之后,现在可以重新生成钥对了。分别生成github和gitlab的公钥,注意命名时做出区分。
使用下面命令生成公钥
ssh-keygen -t rsa -C “这里填邮箱地址”
回车之后会让选择保存公钥的文件,默认是id_rsa,这里加上后缀以做区别:id_rsa_github。(注意下文件路径哟,不写路径的话会生成在打开git shell 的目录下)
同样的,生成gitlab的公钥即可。
分别为github和gitlab添加ssh key(将 id_rsa_github.pub
和 id_rsa_gitlab.pub
内容分别添加到 github 和 gitlab 的 SSH Keys 中)
上一步,我们已经将公钥添加到了 github 或者 gitlab 服务器,现在还需要将私钥添加到本地。使用以下命令
- ssh-add ~/.ssh/id_rsa_github
- ssh-add ~/.ssh/id_rsa_gitlab
如果添加时出现了Could not open a connection to your authentication agent.的提示,只需先执行下面的命令,之后再执行上述添加命令即可。
ssh-agent bash
添加后,可以使用下面命令确认是否添加完成
ssh-add -l
出现类似下面的东西即是添加成功了
公钥和私钥分别在服务器和本地添加好后,现在需要编辑配置文件来管理账号。在.ssh文件夹的config文件里(如果没有自行创建)
配置内容如下(根据自己的情况填写):
- Host github
- HostName github.com
- User joker
- IdentityFile ~/.ssh/id_rsa_github
-
- Host gitlab
- HostName gitlab.com
- User joker
- IdentityFile ~/.ssh/id_rsa_gitlab
该文件分为多个用户配置,每个用户配置包含以下几个配置项:
配置后通过下面命令测试下HOST是否能连通
ssh -T git@github
现在为不同的仓库配置Local级别的配置,就能使用不能的账号操作不同的仓库了
假设我们要配置 github 的某个仓库,进入该仓库后,执行以下命令
- git config --local user.name "你的账号"
- git config --local user.email "你的邮箱"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。