问题描述:
我公司有一个github账号,每天工作把代码传上去,我觉得代码写的好,我同时想上传到自己的github账号上面去,但是目前只有一台电脑,如何在一台电脑上面进行设置,使这一台电脑可以同时上传两个不同的github账号呢
解决方案:
1. 生成新的ssh-key
我们默认在此之前大家已经可以通过这台电脑上传代码到一个github账号上面去,假设我之前注册github账号是[email protected], 大家已经可以上传代码了,现在我申请了一个新的账号[email protected]
首先生成新的ssh-key:在gitbash下,输入命令:ssh-keygen –t rsa –C “[email protected]”
然后会提示你输入一个名字,因为你是在一台电脑上第二次生成公钥,一般第一次默认的名字是id_rsa,但是如果这次你还是这个名字的话就会把之前的覆盖掉,意思就是说,原本电脑里面已经存在的id_rsa,是[email protected] 的,所以你这次输入一个新的名字 比如id_rsa_cat,这时候就会自动生成生成两个文件id_rsa_cat和id_rsa_cat.pub
然后系统会提示你输入密码,然后回车就成功了。上面操作如下图所示
2. 添加ssh-agent(每次重启之后都需要这句)
首先找到刚刚生成的两个文件,注意看我上面的目录,
所以我刚刚生成的两个文件在我电脑的W盘下的GitFile/C-Practice下,把生成的id_rsa_cat和id_rsa_cat.pub拷贝到C盘的用户(或者叫User)的.ssh文件下
如下图
上图里面配置了好几个github,大家可以忽略,只看id_rsa_cat和id_rsa_cat.pub就好,还有就是注意我的文件夹。上面的这些操作直接在Windows下操作就好,不需要是gitbash。接下来打开gitbash,进入到~目录下,然后使用下面的命令来添加,ssh-add ~/.ssh/id_rsa_cat
但是如果出现如下的错误,就说明没有给本地添加一个agent
接下来使用下面的命令,创建一个新的agent:eval `ssh-agent -s`,然后再进行下面的操作就好了
3. 添加ssh key到github下
即把生成的公钥(id_rsa_cat.pub),添加到github账号下,这里不再细述,看下图大家应该就知道啥意思了
4. 配置多个ssh-key
在gitbash的~目录下,输入下面命令:vim ~/.ssh/config
大家通过比较下图的不同之处,根据自己的设置,把config的内容进行修改,这里也不再细述
5. 使用cat进行clone代码
比如我在github账号[email protected] 下创建了一个仓库,命名为practice,首先clone仓库,使用命令:git clonegit@cat:cat/practice.git 其中第一个cat是你在配置config的时候那个Host后面对应的名字,而第二个cat是你的github账号上面的那个名称
比如上图中我还配置了一个Moca的账号,而它在github上面的账号是baixu1217.com,那么我此时clone的时候使用的命令是git clone git@Moca:baixu1217/practice.git
6. 为每个账号对应的项目配置email和name
如果本机已经配置所有可用的email和name,就把原本已经配置好的取消掉,输入命令:
git config –global–unset user.name
git config –global–unset user.email
然后每次clone一个仓库后都要配置相应的user.name和user.email
首先进入到你刚刚clone的仓库目录下,然后输入下面命令
git configuser.name “cat” 这里面的cat是你上图中配置的那个User后面的名字保持一致。然后输入命令:
git configuser.email “[email protected]” 这里的email就是你注册github的账号
7. 上传代码
这部分相信有基础的同学一定会使用的,就是和平时使用git add ,git commit –m和git push origin master一样了,大家可以试试吧
github:...