前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多 git 账号配置解决方案

多 git 账号配置解决方案

作者头像
逆葵
发布2019-04-25 14:24:13
1.4K0
发布2019-04-25 14:24:13
举报
文章被收录于专栏:FECodingFECoding

相信很多开发者都会遇到在自己的电脑上使用不止一个 git 帐号的情况。一个一般是自己的 github 帐号,另一个则是公司的 git 帐号,比如 gitlab、bitbucket 等。如果采用 https 方式通信,那么 git 帐号间不会有冲突,但你在每次 pull、push 的时候都要输入帐号密码,十分繁琐。而且当代码库达到十分庞大的规模时,如果仍然采用 https 方式,在 git pull 时可能出现超时不响应的情况,此时只能采用 ssh 方式。ssh 在配置完 ssh key 后使用起来很方便,但是 git 帐号间可能出现冲突,这时候该如何解决呢?

配置 ssh key 的方式此处不再赘述,假设 .ssh 文件夹下有 id_rsa、id_rsa.pub、didi_id_rsa、didi_id_rsa.pub,分别对应个人 github 帐号私钥公钥以及公司 git 帐号私钥公钥。如果不进行设置,使用 github 账号时没有问题,但是使用公司账号时,由于默认情况下私钥存放在 id_rsa 文件中,因此 git 仍会尝试用 id_rsa 中而不是 didi_id_rsa 中的私钥去与服务器上添加的公钥进行比对,自然而然会报错。通常这种情况下 git 会让你输入密码,笔者连续三次输入密码错误(其实根本不知道该密码为何物),报错,Permission denied。 网络上的解决方案普遍为在 ssh 的配置文件中加入以下字段:

代码语言:javascript
复制
Host github.com
 hostname gitlab.zjut.com
 User Boy-A
 IdentityFile /User/<yourusername>/.ssh/id_rsa
 
Host git.xiaojukeji.com
 hostname git.xiaojukeji.com
 User Boy-B
 IdentityFile /User/<yourusername>/.ssh/didi_id_rsa 

该文件的主要作用就是指明各个 git 帐号对应的 User 以及 IdentityFile 的文件位置。当配置完毕后,在各个项目 repo 中应用自己的用户名以及邮箱:

代码语言:javascript
复制
1.取消 global
git config --global --unset user.name
git config --global --unset user.email

2.设置每个项目 repo 的自己的 user.email
git config  user.email "xxxx@xx.com"
git config  user.name "ddfe"

如此,各个 git 帐号间就可以“井水不犯河水”了。

但是,最麻烦的地方其实并不在这里,而是这个配置文件究竟位于何处。根据网友的分享,Windows 系统中,该配置信息存放在名为 config 的文件中,位置在 ~/.ssh/ 目录下,而在Linux/Unix系统中配置信息则保存在 ssh_config 文件中,至于位置,众说纷纭。笔者使用的是 macOS 系统,尝试用 “ssh -vT git@git.xiaojukeji.com” 去查看 ssh 连接主机的 debug 信息,终于发现了头绪,debug信息的第二行如下:

代码语言:javascript
复制
debug1: Reading configuration data /etc/ssh/ssh_config

终于找到了文件的位置!修改之,大功告成!

总结:

  1. 使用命令 “ssh -vT git@xxx.com” 查看 ssh_config 文件的位置
  2. 进入 ssh_config 文件,配置各个 git 帐号的 User 以及 IdentityFIle
  3. 在各个项目中配置好 user.name 以及 user.email
  4. 在各个 git 帐号间尽情穿梭吧~

更新:

2018-05-23

笔者发现 git 的 ssh 配置文件的位置不一定是 ~/.ssh/ssh_config,具体位置还是需要通过上面总结中的第一点进行查看。如果是 ssh 登录云主机的操作,配置文件的位置则可能是以下情况:

用户配置文件 (~/.ssh/config) 系统配置文件 (/etc/ssh/ssh_config)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结:
  • 更新:
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档