Git 多用户多仓库配置 windows10
> 本文主要介绍在win10 环境下,同一台电脑上有多个git账户来管理不同平台的远程仓库如github, gitlab, gitee.
假设我们现在有两个账户:
- 账户1:name1 + name1@email.com 用来管理github的账户
- 账户2:name2 + name2@emial.com 用来管理gitlab的账户
S1. 生成公私key.
- 安装好git bash后,使用命令:
```
ssh-keygen -t rsa -C "name1@email.com"
```
- 根据命令提示生成对应的key, id_rsa_name1
同样的方法生成对应的key, id_rsa_name2
- 注意生成的key默认存放在Git的安装目录下,我的在(C:\Program Files\Git 下), 需要把生成的公私匙都移动到家目录的.ssh 文件夹中
S2. 添加公匙到相应的git平台
- 复制id_rsa_name1.pub 里的内容到github, ssh key 当中。
- 复制id_rsa_name2.pub 里的内容到gitlab, ssh key 当中。
S3. .gitconfig配置(关键步骤)
- 我们直接使用.gitconfig来管理不同的账户
- 首先确定好本地working 项目放置在哪个文件夹,比如我在本地E 盘下创建两个文件夹name1_repo 和name2_repo, name1_reop 用来放与github对应的项目,name2_repo用来放与gitlab对应的项目
- 在家目录下(.ssh文件夹的上级目录)下创建两个文件夹gitconfig_name1 和gitconfig_name2
- 分别在每个文件夹中创建一个 .gitconfig文件
- 每个文件里写:
```
[user]
name = name1
email = name1@email.com
[core]
sshCommand = "ssh -i ~/.ssh/id_rsa_name1"
```
- 在gitconfig_name2文件夹下当然就和上面对应改成name2就好了
- 回到家目录下再新建一个.gitconfig文件,如果已经存在了就把旧的改个名称比如bak.gitconfig. 在新的.gitconfig文件中写:
```
[includeIf "gitdir:E:/name1_repo/"]
path = ~/gitconfig_name1/.gitconfig
[includeIf "gitdir:E:/name2_reop/"]
path = ~/gitconfig_name2/.gitconfig
```
- 写上面的文件要注意第一个冒号后面"gitdir:"不能有空格,不然识别不到指定的文件夹路径
- 我试了一下把不同配置用文件区分而不是文件夹区分,比如新建一个gitconfig文件夹,然后在里面创建两个.gitconfig_name1 和.gitconfig_name2 没有成功,如果您这样配置成功了,欢迎留言讨论呀
- 如果想只在一个文件下使用特别的账户比如name2, 而在其余文件夹下都使用name1.可以修改家目录下的.gitconfig文件
```
[user]
name = name1
email = name1@email.com
[core]
sshCommand = "ssh -i ~/.ssh/id_rsa_name1"
[includeIf "gitdir:E:/name2_reop/"]
path = ~/gitconfig_name2/.gitconfig
```
- 这样默认就使用name1, 只在name2_repo下使用name2. 注意全局的要写在前面,如果写在name2后面了,会覆盖前面的配置。
- 保存各个文件,测试一下
测试
- 分别在github和gitlab中新建test_repo测试仓
- 进入E:/name1_repo, 鼠标右键, 打开git bash
- 使用远程仓的ssh链接,git clone 到本地, 如果能clone下来就证明配置成功了。使用同样的方法测试一下gitlab, clone,push命令等等。
总结
- 这种配置的关键点是在不同的项目文件夹中使用不同的账户配置。
- 这是我第一次写技术文档,不足之处还请多多指点。
参考
- https://dev.to/arnellebalane/setting-up-multiple-github-accounts-the-nicer-way-1m5m
- https://stackoverflow.com/questions/4220416/can-i-specify-multiple-users-for-myself-in-gitconfig
版权声明: 本文为 InfoQ 作者【halapano】的原创文章。
原文链接:【http://xie.infoq.cn/article/4bbd45ede6f7e15bdaed1f6d4】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论