Git 配置多用户
Git 配置多用户
场景:
当有多个 git 账号时,比如:
- github,用于个人项目的开发
- gogs,公司内部的git
冲突:
如果多个 git 账号邮箱不同的话,就会涉及一个问题
生成第二个 gitkey 的时候会覆盖第一个的 key ,导致必然有一个用不了
解决办法:
生成多个不同的公私密钥对,从 config 文件管理它们
配置
假设在 ~/.ssh
目录下已经存在了一个密钥对:
1 | id_rsa |
生成Key
1 | ssh-keygen -t rsa -C "yourmail@gmail.com" |
这里不要一路回车,我们需要自己手动填写保存路径。
1 | Generating public/private rsa key pair. |
上面我们用 id_rsa_github
文件名来区分原有密钥对,避免被覆盖
完成之后,我们看到了 ~/.ssh
目录下多了两个文件:
1 | id_rsa_github |
添加私钥
1 | ssh-add ~/.ssh/id_rsa |
如果提示文件或目录不存在,就使用绝对地址
创建 config 文件
在 ~/.ssh
目录下创建名为 config
的文件
confg
中添加以下内容:
1 | gitlab |
其中 Host
和 HostName
填写 git
服务器的域名。
IdentityFile
指定私钥的路径。
如果在 Linux 系统下提示错误:Bad owner or permissions on /home/gary/.ssh/config
证明 config 权限过大,chomd
命令调整:
1 | chmod 644 ~/.ssh/config |
然后在github和gitlab上添加公钥即可,这里不再多说。
测试
比如测试 github:
1 | ssh -vT git@github.com |
-v 是输出编译信息
-T 是测试
测试不成功时根据编译信息自己去解决问题
git全局用户名和邮箱
查看
1 | git config user.name // 全局用户名 |
设置
1 | git config --global user.name "username" |
删除
1 | git config --global --unset user.name |
如果之前有设置全局用户名和邮箱的话,需要 unset 一下
最后
然后在不同的仓库下设置局部的用户名和邮箱。
比如在自己公司git下:
1 | git config user.name "yourname" |
在自己的github的仓库在执行刚刚的命令一遍即可。
这样就可以在不同的仓库,已不同的账号登录。
感谢您的阅读,本文由 歪麦 原创提供。如若转载,请注明出处:歪麦(https://www.awaimai.com/2200.html)