Git配置多个github账号
配置
-
清空默认的全局
user.name和user.email1
2git config --global --unset user.name
git config --global --unset user.email可通过一下命令查看
全局Git 配置的所有设置1
git config --global --list
-
为不同的
git账户生成不同的ssh-keyid_rsa是默认的文件名称,我们现在需要生成不同的ssh-key,所以要设置不同的文件存储对应的公钥,比如:私人的 GitHub 账户使用id_rsa_Private命名;公开的GitHub 账户使用id_rsa_Public来命名1
2ssh-keygen -t rsa -f ~/.ssh/id_rsa_Private -C "[email protected]"
ssh-keygen -t rsa -f ~/.ssh/id_rsa_Public -C "[email protected]"注意:输入完回车后会询问是否添加密码,可以直接回车
上面的命令调用完后会生成四个文件:
id_rsa_Privateid_rsa_Private.pubid_rsa_Publicid_rsa_Public.pub
-
将
ssh-key分别添加到ssh-agent信任列表ssh-add 命令用于将私钥添加到 SSH 代理 (ssh-agent) 中,这样您就不必每次使用 SSH 时都输入私钥密码。SSH 代理可以在您登录时启动,并在您的登录会话中一直运行,为您管理已解锁的私钥。这样,您就只需在每个新的登录会话中解锁一次私钥,而不必每次都输入私钥密码。这对于频繁使用 SSH 的用户来说非常Correção no código.方便。
启动 SSH 代理
1
eval "$(ssh-agent -s)"
添加私钥
1
2ssh-add ~/.ssh/id_rsa_Private
ssh-add ~/.ssh/id_rsa_Public如果看到
Identitiy added: ~/.ssh/id_rsa_Private,就表示添加成功了。 -
将公钥配置到对应的github账号中
公钥即.pub文件可以直接用文本打开,内容粘贴到github的Settings -> SSH and GPG keys -> New SSH Key,Title随便起,自己能认出来即可,Key里面填写复制的.pub里的内容,这样公钥就配置好了 -
在
config文件中配置多个ssh-key在 .ssh/ 目录下,找到config文件(没有的话新建一个,之前的
ssh-key也在这个目录)1
2
3
4
5
6
7
8
9
10
11
12#Private 私人账户
Host Private.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_Private
#Public 公开账户
Host Public.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_Publicconfig文件部分参数含义,仅做记录1
2
3
4
5
6# Host: 主机别名
# HostName: 托管平台域名地址,如github.com
# IdentityFile: 该Host私钥文件
# User: 托管平台用户名
# Port: 端口号,可不填(如果不是默认22号端口则需要指定)
# PreferredAuthentications publickey -
测试
测试:ssh -T git@{config里面的user}.xxx主机名
1
2ssh -T [email protected]
ssh -T [email protected]出现以下,则说明成功!
1
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
此时
私钥和公钥都配置正常了
使用
-
配置当前仓库账号
注意:在不同的代码仓库进行代码提交时,记得检查用户名和邮箱,以免混淆。
在上面操作中为了配置多个账户,取消了全局
user.name和user.email,现在需要为每个仓库单独配置,这样做的好处就是可以将两个GitHub账户的仓库分开管理,只在当前仓库中生效,不会影响其他仓库。- 全局配置: 对于用户在计算机上的所有 Git 仓库都生效,是全局默认设置。
- 用户配置: 对于当前用户在当前仓库生效,会覆盖全局配置。
- 本地配置: 只在当前仓库中生效,会覆盖用户配置和全局配置。
为当前仓库设置本地配置
1
2git config --local user.name xxx
git config --local user.email [email protected]查看当前仓库本地配置
1
2
3
4
5git config user.name //查看当前 Git 仓库的用户名
git config user.email //查看当前 Git 仓库的邮箱
git remote -v //查看当前 Git 仓库的远程仓库信息
git log -1 --format='%an <%ae>' //查看最近提交的提交者信息 -
使用不同的github账户clone仓库
必须使用SSH方式clone。SSH类型的链接格式为:
[email protected]:github用户名/仓库名.git若要使用不同的github账户clone仓库,则
github.com这一部分更改改为上面教程中的config文件中的Host部分1
2
3[email protected]:github用户名/仓库名.git
[email protected]:github用户名/仓库名.git
注意
- 配置多个 github 账户后,像
hexo这样的,需要修改git地址,打开博客 Hexo 目录下的_config.yml文件,找到deploy关键字,将[email protected]修改为上方所设置的Host部分,比如[email protected]
参考
- Git配置多个github账号_maven的技术博客_51CTO博客
- git config多用户配置 - 知乎 (zhihu.com)
- Git 用户名邮箱的全局配置和单仓库配置(不同项目使用不同账号登录)_git 全局账号-CSDN博客
- https://gist.github.com/suziewong/4378434
- https://www.cnblogs.com/convict/p/14887421.html
- https://juejin.cn/post/6999630383130083358
- https://zhuanlan.zhihu.com/p/423007454
- git 本地config 和 全局config的区别 - 掘金 (juejin.cn)
- Git 多个GitHub账号配置和多个Hexo博客地址配置_一个github能建几个hexo-CSDN博客




