windows下git多账户管理

[转]windows下git多账户管理

苏苏
2023-06-01 / 0 评论 / 12 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年06月01日,已超过792天没有更新,若内容或图片失效,请留言反馈。

以gitea+github为例:

范例邮箱账号:

第一步:清除全局配置

如果你已经全局配置过git账号,那么一定要先把全局的配置给清除掉。
可执行以下命令查看:

git config --global --list  // 看一下是否配置过user.name 和 user.email
git config --global --unset user.name // 清楚全局用户名
git config --global --unset user.email // 清楚全局邮箱

第二步:删除已经生成过的密钥

如果你已经全局配置过git账号,那么你一定生成过全局ssh密钥。 这个密钥通常在 C:\Users\用户名.ssh 目录下。

第三步:生成新的密钥

因为你需要关联多个账号,所以同理也需要生成多个ssh密钥。【注意:需在.ssh目录下操作,否则会生成的密钥默认会存放至system的位置】

1、生成gitea的密钥

ssh-keygen -t rsa -C "susu.gitea@xxxx.com" -f "id_rsa_gitea"// 根据该邮箱生成新的SSH密钥

在此步骤可以给key设置密码,建议设置。

2、生成github的密钥

操作步骤和上面的一样,不再赘述。
为了区分,github的密钥名称我设置为: id_rsa_github 对应的gitee仓库:susu.github@xxx.com

第四步:添加公钥到远端仓库

密钥生成后,会在.ssh目录下,生成两个文件 id_rsa_gitea (私钥)和 id_rsa_gitea.pub (公钥)。将公钥添加到gitea后台。

第五步:配置密钥管理文件

为了更方便的管理多个git账号,我们需要一个config的配置文件,用来集中配置。
在.ssh目录下,创建config文件。
vim ~/.ssh/config

配置如下

Host gitea
HostName gitea.mygit.com
User susu
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitea
Port 2222

Host  github
HostName github.com
User susu
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

配置解释:
Host ---------远端仓库地址或IP(不支持配置端口)
HostName ---------远端仓库的别名,简写 例如: 配置后 git@gitea.com 可以写为 git@gitea
User ---------仓库上的用户名
PreferredAuthentications ---------强制使用Publickey验证
IdentityFile ---------指向仓库私钥的绝对路径
Port ---------远端仓库端口,一般不需要设置,特殊情况除外

第六步:测试一下仓库连接

测试命令:

ssh -T git@gitea [第五步的Host配置过的简写]  或者 ssh -T git@gitea.com   [全拼]
ssh -T git@github [第五步的Host配置过的简写] 或者 ssh -T git@github.com  [全拼]

第七步:单独指向设置

因为git分为 System > Global > Local 三级。 分别为:系统级、全局、仓库级。

如果没有进行此步设置,你可能会遇到push代码时, 提交的用户名变成你的系统主机名。
不要慌张,

这里需要你单独设置一下。为什么呢? 还记得第一步的时候,我们清除了global的配置吗,也就意味着,后面的配置我们不上升至全局,而只针对具体项目。

所以,我们要对每个仓库,单独配置用户名信息。

我需要以仓库级(local) 设置一下当前仓库的git相关配置:

git config --local user.name "susu"
git config --local user.email "susu.gitea@xxx.com"

其他仓库也设置其对应的git账户信息。

DONE:恭喜你!至此你已经完成了git多账号配置的全部流程!
此时,你的git账号已经完全独立互不干扰,你可以通过不同的git账号,在不同的仓库pull或者push了!!!

0

评论 (0)

取消