git两个.ssh key如何解决冲突

发布于 2022-09-02 11:03:08 字数 589 浏览 18 评论 0

目前我使用github还有公司的gitlab,而github上对应的是我的QQ号,gitlab对应的是公司的账号。而且我不想在Github上添加公司的账号来获取的密钥。
解决问题: 参考网上文章,本地写了config文件

  # gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa(对应公司的账号)

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa2(我的QQ号)

情况说明:
1.出现的问题,目前公司提交的name居然是我的QQ信息,但是gitlab上添加的SSH key是公司对应账号生成的。(估计逻辑有点混乱)

2.我查看本地的配置cat ~/.gitconfig 是我QQ号对应的信息!

问题: 为什么gitlab上配置了公司账号的.ssh key,提交代码的时候还会显示QQ账号的信息?难道gitlab没有权限验证吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

最偏执的依靠 2022-09-09 11:03:08

你可能没搞明白push 和 commit的区别

push 是将本地库推送到远端,需要权限,sshkey是用来校验是否有push权限的
commit 只是在本地将改动提交到本地的仓库,不需要权限。.gitconfig里面的用户名和邮箱只是commit对应作者的信息,不具备权限控制功能,可以随便指定,哪怕你改成乔布斯也能提交上去

  • git config user.name 可以查看当前repo的用户名配置

  • git log 可以检查历史的commit是用什么邮箱和用户名提交的

~/.gitconfig是你git的全局配置,如果项目下没有单独的配置,则会从该配置文件中继承

解决办法:在公司项目里单独配置即可

cd repo_of_work
git config user.name 公司用户名
git config user.email 公司邮箱

其实这样还是比较容易混乱,一旦有新的公司项目,忘了配置公司邮箱,就还会出现类似的情况,最好把全局配置删掉,这样的话每次有新的项目,不配置用户名和邮箱是无法commit的

空袭的梦i 2022-09-09 11:03:08

补充楼上贴上命令

$ git config -l
$ git config --global -l 
$ git config --global --unset user.name
$ git config --global --unset user.email
多彩岁月 2022-09-09 11:03:08

Maybe you can try this
http://g.aldwx.com/help/ssh/R...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文