对于在一台电脑上配置多个Git账号的需求,使用场景是非常常见的。很多开发者会在不同的平台(如GitLab, GitHub, Gitee等)上拥有多个账号用于不同的目的,例如工作和个人学习。假设读者已经安装并配置好 Git,并且在本地拥有一个 Git 账号
下面是一些关于如何在同一台终端上配置和管理多个Git账号的提示,做下记录:
- 删除全局Git配置:如果之前配置了全局的用户名称和邮箱,需要先清除这些设置,以免它们影响到特定仓库的配置。- 查看global配置
git config --global--l
- 释放全局名字和邮箱变量git config --global--unset user.namegit config --global--unset user.email
- 生成新的SSH密钥:为每个Git账户生成一个新的SSH密钥。在生成密钥时,可以为每个密钥指定一个独特的文件名 **
id_rsa_github
**。ssh-keygen -t rsa -C"[email protected]"-f ~/.ssh/id_rsa_github
转到指定生成公私钥的目录~/.ssh
- 将公钥添加到各个Git平台:打开
id_rsa_github.pub
文件并复制里面的内容。登录到Git平台,选择Settings
,将生成的公钥添加到对应账户的SSH keys设置中。 - 配置SSH config文件:新建
~/.ssh/config
文件,为每个账户设置配置,这包括指定每个账户的HostName、User、IdentityFile等。# GitHub AccountHost HostNameA HostName github.com User git IdentityFile ~/.ssh/id_rsa_github# GitLab AccountHost HostNameB HostName gitlab.com User git IdentityFile ~/.ssh/id_rsa_gitlab
配置文件说明# Host:这是一个别名,用于在Git命令中指定要使用的配置,比如git clone git@gitlab:repo.git中的gitlab就是Host的别名。# HostName:这是Git服务器的实际地址,比如gitlab.com、github.com等。# User:Git服务器的登录用户名,对于大多数Git服务器,如GitHub和GitLab,这里通常是git。# IdentityFile:这是SSH密钥文件的路径,用于身份验证。它指向你为特定Git账户生成的私钥文件。
配置完成后,Git 和 SSH 将自动使用你为每个主机指定的配置。 - 测试SSH连接:确保每个SSH连接都可以正确工作。
ssh-T git@HostNameAssh-T git@HostNameB# 正确工作输出> Hi <Your GitHub Username>! You've successfully authenticated, but GitHub does not provide shell access.> Hi <Your Gitlab Username>! You've successfully authenticated, but Gitlab does not provide shell access.
- 项目级别的用户信息配置:在每个具体的项目目录下,可以根据需要设置特定的用户信息。
git config user.name "Your Name"git config user.email "[email protected]"
当然这也可以在vscode添加字段[user]
- git clone 下载- 将原来github.com替换为Host别名
git clone [email protected]:user/demo.gitgit clone git@HostNameA:user/demo.git
不然会出现以下错误[email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
版权归原作者 yang7hi 所有, 如有侵权,请联系我们删除。