git多账户配置
-
清除 git 的全局设置
# 查看你是否设置 git config --global --l
git config --global --unset [user.name](<http://user.name/>) "你的名字" git config --global --unset user.email "你的邮箱"
-
生成新的 SSH keys
a:配置第一个gitee
ssh-keygen -t rsa -C "账号1邮箱地址" 或者 ssh-keygen -f ~/.ssh/文件名称 直接回车3下,什么也不要输入,就是默认没有密码,不报错就是正确的。
b:生成第二个账号的密钥
输入 ssh-keygen -t rsa -C "账号2邮箱地址" 回车后,要先输如第二个账号密钥的文件名以区分第一次生成的秘钥名, 后再连续2次回车,例如输入:smalldemons 。 此时在你的C/Users/xxx/.ssh目录下就会又增加两个文件:smalldemons、smalldemons.pub,
-
配置config文件
-
.ssh/config文件内容
#配置账号1 Host [1.gitee.com](<http://1.gitee.com/>) HostName [gitee.com](<http://gitee.com/>) IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa # win 或 IdentityFile ~/.ssh/id_rsa # linux PreferredAuthentications publickey User ztzy
#配置账号2 Host [2.gitee.com](<http://2.gitee.com/>) HostName [gitee.com](<http://gitee.com/>) IdentityFile C:\\Users\\Administrator\\.ssh\\smalldemons PreferredAuthentications publickey User printzy
-
IdentityFile命令生成(推荐)
# linux git config core.sshCommand "ssh -i C:\\Users\\Administrator\\.ssh\\id_rsa" # win git config [--global] core.sshCommand "ssh -i /path/to/your/privateKey"
-
配置文件参数说明
Host : 每个Host要取一个别名,每个Host主要配置HostName和IdentityFile即可 HostName : 要登录主机的主机名 User : 登录名 IdentityFile : 指明上面User对应的identityFile路径,这里用的相对路径
-
-
分别测试两个账号
ssh -T [git@](<mailto:git@1.gitee.com>)1.gitee.com ssh -T [git@](<mailto:git@2.gitee.com>)2.gitee.com # 结果只要看到自己码云上的名字了,就说明成功了 # Hi sky! You've successfully authenticated, but GitHub does not provide shell access.
-
克隆项目
git clone [git@](<mailto:git@1.gitee.com>)**1.gitee.com**:XXX/XXXX.git # **1.gitee.com**为**config**中设置的Host也就是别名
#克隆以后就可以进行增删改推送了 git add . git commit -m "first" git push -u origin master
-
配置用户名和邮箱
git config [user.name](<http://user.name/>) "xx" git config user.email "[xx@xx.com](<mailto:xx@xx.com>)" git config --list (查看配置)
-
问题
1、测试的时候提示:gitee Permission denied (publickey). 是因为你的ssh -T git@1.gitee.com中@后面的内容和配置的HOST名字不一致
2、The authenticity of host '[gitee.com](<http://gitee.com/>) (212.64.62.183)' can't be established: 是因为文件夹内少了一个known_hosts文件,本来密钥文件应该是三个,现在只有两个,便报了这样的错误, 此时输入yes回车之后,生成了缺少了的known_hosts文件,便可解决这个问题。
-
已有项目完整流程
# 删除原有git rm -rf .git # 设置rsa git config core.sshCommand "ssh -i ~/.ssh/id_rsa" # linux # git config core.sshCommand "ssh -i C:\\Users\\Administrator\\.ssh\\id_rsa" # win # 添加到暂存区 git add . # 提交 git commit -m "init" # 关联远程仓库 git remote add origin 仓库地址 # 推送至远端 git push -u origin master
评论区