git multi account manage

git 多账号管理

本文主要针对的是 ssh 场景 网上有很多关于 git 多账号管理的文章,很多写的比较零碎,或者只解决了某一方面的问题,这里整理一下,方便自己使用 对于该问题可设想的场景可以分为以下几种: 不同域名使用不同的 sshkey 文件 同一域名使用不同的 sshkey 文件 同一域名使用 git 账号 对于上述场景,其实核心就两个问题: ssh 客户端如何切换不同 sshkey git 客户端如何切换不同账号 ssh 的场景中,大多数 90% 的情况都是只需要不同 sshkey 文件就行了,至于 git 的账号 username <username@domain> 其实可以忽略,并没有那么重要。 配置 ssh 账号 关于 ssh 的基础配置,可以参考 github 官方的文档 这个处理最简单,也是网上能搜到最多的方案,通过 ~/.ssh/config 配置文件中的 Host 来区分不同的 sshkey 文件 Host github.dev HostName github.com # 必须要 IdentityFile ~/.ssh/github_rsa IdentitiesOnly yes Host gitlab.yourdomain.com IdentityFile ~/.ssh/gitlab_rsa IdentitiesOnly yes 这样,你同一个 git 账号,就可以对不同仓库使用不同的 sshkey 文件了。 ...

四月 29, 2025 · 2 分钟 · genffy

为不同的 git repo 配置 ssh key、gitconfig

对不同的邮箱生成不同的 ssh key 生成密钥对 # 设置公司的 ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/gitlab_rsa # 设置默认的,一般都是给 gitlab 用的 ssh-keygen -t rsa -C "[email protected]" # 查看生成的密钥对 ls -la ~/.ssh # -rw------- 1 genffy staff 2610 Feb 15 17:48 gitlab_rsa # -rw-r--r-- 1 genffy staff 578 Feb 15 17:48 gitlab_rsa.pub # -rw------- 1 genffy staff 2602 Feb 15 17:51 id_rsa # -rw-r--r-- 1 genffy staff 571 Feb 15 17:51 id_rsa.pub 创建配置文件 vim .ssh/config 填入以下内容 # gitlab.orgname.com Host gitlab.orgname.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/gitlab_rsa User [email protected] # github.com # Host github.com # AddKeysToAgent yes # UseKeychain yes # IdentityFile ~/.ssh/github_rsa # User [email protected] 测试设置效果 ssh -T [email protected] # Hi genffy! You've successfully authenticated, but GitHub does not provide shell access. ssh -T [email protected] # Welcome to GitLab, @zhengfei.li! 配置不同的 git 目录使用不同的密钥 复制默认的 .gitconfig cp .gitconfig .gitconfig-gitlab cp .gitconfig .gitconfig-id 编辑不同的配置文件的 user 信息 vim .gitconfig-gitlab [user] name = zhengfei.li email = [email protected] signingkey = ~/.ssh/gitlab_rsa.pub [pull] rebase = false [filter "lfs"] process = git-lfs filter-process required = true clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f [init] defaultBranch = main [commit] gpgsign = true [gpg] format = ssh vim .gitconfig-id [user] name = genffy email = [email protected] signingkey = ~/.ssh/id_rsa.pub [pull] rebase = false [filter "lfs"] process = git-lfs filter-process required = true clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f [init] defaultBranch = main [commit] gpgsign = true [gpg] format = ssh 设置不同仓库目录使用不同 .gitconfig vim .gitconfig [includeIf "gitdir:~/workspace/"] path = .gitconfig-id [includeIf "gitdir:~/Documents/workspace/"] path = .gitconfig-gitlab 最后可以在不同的目录下,修改下代码提交测试效果 ...

三月 8, 2023 · 2 分钟 · genffy