Git 配置多用户

Git 配置多用户

场景:

当有多个 git 账号时,比如:

  • github,用于个人项目的开发
  • gogs,公司内部的git
冲突:

如果多个 git 账号邮箱不同的话,就会涉及一个问题

生成第二个 gitkey 的时候会覆盖第一个的 key ,导致必然有一个用不了

解决办法:

生成多个不同的公私密钥对,从 config 文件管理它们

配置

假设在 ~/.ssh 目录下已经存在了一个密钥对:

1
2
id_rsa
id_rsa.pub
生成Key
1
ssh-keygen -t rsa -C "yourmail@gmail.com"

这里不要一路回车,我们需要自己手动填写保存路径

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Gary/.ssh/id_rsa): /c/Users/Gary/.ssh/id_rsa_github

上面我们用 id_rsa_github 文件名来区分原有密钥对,避免被覆盖

完成之后,我们看到了 ~/.ssh 目录下多了两个文件:

1
2
id_rsa_github
id_rsa_github.pub

添加私钥
1
2
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_github

如果提示文件或目录不存在,就使用绝对地址

创建 config 文件

~/.ssh 目录下创建名为 config 的文件

confg 中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
# gitlab
Host git.iboxpay.com
HostName git.iboxpay.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab

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

其中 HostHostName 填写 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
2
git config user.name	// 全局用户名
git config user.email // 全局邮箱
设置
1
2
git config --global user.name "username"
git config --global user.email "email"
删除
1
2
git config --global --unset user.name
git config --global --unset user.email

如果之前有设置全局用户名和邮箱的话,需要 unset 一下

最后

然后在不同的仓库下设置局部的用户名和邮箱。

比如在自己公司git下:

1
2
git config user.name "yourname" 
git config user.email "youremail"

在自己的github的仓库在执行刚刚的命令一遍即可。

这样就可以在不同的仓库,已不同的账号登录。

感谢您的阅读,本文由 歪麦 原创提供。如若转载,请注明出处:歪麦(https://www.awaimai.com/2200.html
php反射
ApiDoc接口文档工具