git配置多用户
背景
当有多个git账号时,比如:
- 一个gitee,用于公司内部的工作开发;
- 一个github,用于自己进行一些开发活动
解决方法
- 分别为每个git账号生成SHH-Key
ssh-keygen -t rsa -C 'maifeng868@gmail.com' -f ~/.ssh/gitee_id_rsa
ssh-keygen -t rsa -C 'maifeng868@gmail.com' -f ~/.ssh/github_id_rsa
- 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
- 用ssh命令分别测试,前提是将pub的文件粘贴到对应的gitee或者github账户下的SSH密钥中,提示:github和gitee的设置栏有
ssh -T git@gitee.com
ssh -T git@github.com
- 结果分别如下
Hi DreamCats! You've successfully authenticated, but GITEE.COM does not provide shell access.
Hi DreamCats! You've successfully authenticated, but GITHUB.COM does not provide shell access.
对应项目
修改push的地址,默认情况下,我们的项目下的.git目录下,config的文件的内容
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
email = maifeng868@gmail.com
name = Dreamcats
[remote "origin"]
url = git@github.com:DreamCats/JavaBooks.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
此时push就没有问题
总结
- 单用户配置可以满足我们日常生活上的需求
- 多用户一般是进了公司才有这样的需求
- 可以多掌握掌握一些解决方案
本篇git系列软件都会在我的github上收录:github链接