Git 可以同时配置多个 Gitee 账号,但需要针对不同账号进行隔离配置。以下是具体实现方法:
方法一:基于 SSH 协议(推荐)
1. 生成多个 SSH 密钥对
为每个 Gitee 账号生成独立的密钥:
# 生成第一个账号的密钥(如:work)
ssh-keygen -t ed25519 -C "work@example.com" -f ~/.ssh/gitee_work
# 生成第二个账号的密钥(如:personal)
ssh-keygen -t ed25519 -C "personal@example.com" -f ~/.ssh/gitee_personal
2. 配置 SSH 的 config
文件
编辑 ~/.ssh/config
文件,为每个账号定义别名和密钥路径:
# 工作账号
Host gitee-work # 自定义别名(用于替换 gitee.com)
HostName gitee.com
IdentityFile ~/.ssh/gitee_work
User git # 固定为 git
# 个人账号
Host gitee-personal # 自定义别名
HostName gitee.com
IdentityFile ~/.ssh/gitee_personal
User git
3. 将公钥添加到 Gitee 账号
- 分别将
gitee_work.pub
和gitee_personal.pub
添加到对应 Gitee 账号的 SSH 公钥设置中。
4. 克隆仓库时使用别名
克隆仓库时替换 URL 中的 gitee.com
为自定义别名:
# 克隆工作账号的仓库
git clone git@gitee-work:work-username/repo.git
# 克隆个人账号的仓库
git clone git@gitee-personal:personal-username/repo.git
5. 配置仓库本地用户信息
进入每个仓库目录,单独设置用户名和邮箱(覆盖全局配置):
cd path/to/repo
git config user.name "Work Name"
git config user.email "work@example.com"
方法二:基于 HTTPS 协议
1. 配置仓库本地凭据
进入仓库目录,单独设置用户名和邮箱:
cd path/to/repo
git config user.name "Personal Name"
git config user.email "personal@example.com"
2. 使用凭据管理器
Git 会为每个 HTTPS URL 缓存凭据。不同账号的仓库使用不同的远程 URL:
git remote set-url origin https://personal:password@gitee.com/personal-username/repo.git
但更推荐使用 Git 凭据管理器(如 git-credential-manager
)自动处理。
验证配置
1. 测试 SSH 连接
ssh -T git@gitee-work # 应返回工作账号的用户名
ssh -T git@gitee-personal # 应返回个人账号的用户名
2. 检查提交信息
在仓库中执行:
git config user.name
git config user.email
确保输出与当前账号匹配。
常见问题
- 权限错误:确保 SSH 密钥文件权限为
600
(chmod 600 ~/.ssh/*
)。 - 全局配置覆盖:避免使用
git config --global
,除非需要统一配置。 - URL 格式错误:克隆或远程 URL 必须使用自定义别名(如
git@gitee-work
)。
通过以上步骤,你可以在一台机器上同时管理多个 Gitee 账号,且提交记录和权限隔离互不影响。