Git配置不同项目的不同账号
在公司里做项目,一般都是公司直接分配git账号。而我自己在GitHub上也托管了自己的博客。两边使用的账号是不同的对应的ssh key也不一样。每次都手工更改是很麻烦的,也不是程序员应有的解决方案。这里我记录下我是如何解决git多账号登录的。
首先当初最开始设置 Git 的时候,都是默认全局设置的。例如:
1 | git config --global user.name "your_name" |
一般情况下,参与的项目都是同一个邮箱用户名是没啥问题的。但是碰到我这种情况,又不想换掉其中一个项目的用户名(我也没有这个决定权)。我就需要针对不同的项目设置不同的用户名邮箱。
1 | cd ~/you project #进入项目文件夹 |
说白了,也就是进入到你的git项目相对根目录下,然后执行git config设置记录。这时候我们打开项目中的.git
文件夹,查看config
文件会发现多了两行.
1 | [branch "master"] |
在下一次提交的时候就优先是用项目文件中的git配置信息了。如果有必要可以执行取消全局设置的命令
1 | git config --global --unset user.name |
SSH配置
邮箱不同也会对应不同的SSH key,所以要针对不同的项目使用不同的key。所以打开git全局配置文件。一般在用户目录下的.ssh
文件夹中。比如windows用户就是:C:\Users\用户名\.ssh
Linux就是~/.ssh
找到config文件。没有就新建一个,用文本编辑器打开,添加如下配置:
1 | 第一个git项目账号 |
如果还没有生成ssh key 可以用一下命令生成,不同项目起不同名字或者放到不同路径,在上面的config配置中应用不同路径即可
1 | ssh-keygen -C "your_email" -t rsa |
使配置生效
上面配置了ssh key时候指定了host名称,所以再次打开项目文件夹下的.git
目录下的config文件,修改url配置,把原来的host name url 改成你上面配置的host 值比如 ‘first’ 、’seceond’等,类似如下
1 | [remote "origin"] |
也可以使用命令行完成配置。这里需要注意,使用.ssh目录下的host代替真实的hostname,这样才能让git识别出来
1 | git remote add first git@first:A/project.git |
如果使用的是repo,也是同样操作
1 | repo init -u ssh://A@first -b branch |
push的时候,push到对应的Host即可
1 | git push fist master #first项目中: |
作者: K_Biao
链接:http://www.imooc.com/article/7419