1、准备多个github账号
自行注册,可以用国内qq或者163账号注册.也可以其他国外邮箱注册。
2、配置两个github账号的步骤
2.1 本地生成密钥对
打开终端
生成密钥对, ssh-keygen -t rsa -C "your-email-1"
上面的命令RSA密钥长度github不推荐,继续使用,推荐加上 -b 4096
ssh-keygen -t rsa -b 4096 -C "your-email-1"
按提示输入,一路点击确定就好。生成好id_rsa和id_rsa.pub分别是私钥和公钥,位置在~/.ssh目录下:
重复以上步骤,再生成账号2的公私钥对
ssh-keygen -t rsa -b 4096 -C "your-email-2"
需要改名字,使得密钥对的名字 和账号1不同例如
your-email-1对应的密钥对:id_rsa_name, id_rsa_name.pub
your-email-2对应的密钥对:id_rsa_name2, id_rsa_name2.pub
也可以使用新的密钥对生成方法(推荐,默认名称样式不同,注意修改过config配置文件):
ssh-keygen -t ed25519 -C "你的邮箱"
更小,加解密更快。
生成第二个密钥对的时候记得改一下默认的名字,防止覆盖。
2.2 配置config文件
让MAC区分不同的密钥对对应不同的git账号
说明,如果使用了代理,有时不同IDE不能提交代码,尤其是在不同的AI 编辑器中,例如Codex, TRAE中,需要指明你的代理端口。
# GitHubHost github.comHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_nameProxyCommand nc -x 127.0.0.1:7897 %h %p# another github accountHost github_name2.comHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_name2ProxyCommand nc -x 127.0.0.1:7897 %h %p
重点:
1、两个账号的Host 字段一定要不一样,例如:Host github_name2.com和Host github.com,后续依此区分使用哪个git账号。
2、HostName,User 字段必须固定,绝对不能更改。
3、 IdentityFile必须是和你将要使用的公私钥对一致。
4、‘ ProxyCommand nc -x 127.0.0.1:7897 %h %p 指明走代理加速,不走代理的话,不要写这一行:
nc:netcat 工具,负责建立网络连接
-x:使用代理(SOCKS5 代理)
127.0.0.1:7897:你的本地代理地址(大力工具的默认端口)
%h:自动替换成目标主机(github.com)
%p:自动替换成目标端口(22)
2.3 登录github账号1
点击自己的头像--> setting --> SSH and GPG keys,
我们只需要配置SSH,把id_rsa_name.pub中的公钥串复制到 github中。另一个账号也做同样操作,添加id_rsa_name2.pub。
3、使用
如果你设置 账号1位全局适配,那么你想要使用账号2,或者其他账号,需要在你的项目目录取消账号1的全局生效。
你可以设置一个默认的全局账号,那么在任何项目中默认使用这个账号,例如账号1, name1
git config --global user.name "你的全局名字"
git config --global user.email "全局邮箱"
git config --list 命令查看git全局配置情况,确认你想使用的默认账号是账号1:
% git config --list
credential.helper=osxkeychain
init.defaultbranch=main
user.name=xxx
user.email=xxx@163.com
user.signingkey=xxx
commit.gpgsign=false
safe.directory=*
如果要 删除全局设置
git config --global --unset user.name
git config --global --unset user.email
由于局部项目的git权重较高,你只需要在你的项目目录设置好本地生效的git账号即可。
git config user.name "第二个账号名字"
git config user.email "第二个账号邮箱"
查看本地项目的git生效账户:
git config user.name
git config user.email
有了以上知识,就可以安全的配置本地项目账号了
例如你默认的git账号1,然后你想在新的目录使用git账号2,操作步骤:
1、必须切换到项目的目标路径
2、配置git账号2
3、和git账号2的远程仓库关联
# 1
cd /your/project/path# 2
git config user.name "例如工作账号"
git config user.email "例如work@xxx.com"# 3 注意这里的Host是github_name2.com
git remote set-url origin git@github_name2.com:用户名/仓库.git
其他使用默认账户1的命令host要使用对应的Host。github.co.例如
git remote set-url origin git@github.com:用户名/仓库.git
剩下的操作就是正常的git操作了。
思考:
你知道如何在本地继续添加gitlab,gitee以及你的服务器git服务相关的账号配置以及如何灵活切换和使用吗?
