git多账号配置

工作中往往我们会遇到这种情况, 公司给了邮箱, 采用类似gitlab之类的git服务托管商, 而我们又拥有自己的github账户. 闲暇之余, 我们希望能将个人开源项目或者学习笔记之类的托管到github上, 这时就涉及到git的多账号配置了.

具体流程

  • ssh-keygen -t rsa -C test@test.com, 生成秘钥, 注意不要覆盖原有的秘钥文件(生成时候重新命名该秘钥文件, 其它直接默认即可)
  • ssh-add -l 查看当前电脑已经添加了多少用户标识(也就是秘钥), .ssh下的id_rsa文件(首次新建的秘钥文件)不添加也可被git感知
  • ssh-add ~/.ssh/id_rsa_custom, 添加自定义的秘钥, 若报错, 请使用ssh-agent bash开启bash环境代理来执行相关的git命令
  • 编辑.ssh目录下的config文件, 不存在则新建即可. 该文件内容如下:
    Host git@github.com
    HostName https://github.com
    User git
    IdentityFile ~/.ssh/id_rsa_custom
    
    • Host 为你的HostName的别名, 可自定义使用(若自定义后则执行克隆时候, 使用git clone custom_name:xxx/xxx.git, 其它操作类似)
    • HostName 为你的git服务托管商网址, 我这边直接选择的是github
    • User表示你采用的是那种代码托管服务, 这里采用git
    • IdentityFile 为你的秘钥文件(带上路径)
  • ssh -T git@github.com 测试自定义的账号是否配置成功
  • 配置好以上后, 基本就可以进行多账号的环境开发了. 但是一般在提交或者推送时候, git是需要你提供你的emai, 此时可以将主要开发的邮件设置为全局的(git config --global user.email primary@primary.com, 设置全局用户名git config --global user.name primary_name). 如果在你的开源工程或者学习工程不想使用该邮件, 则进去该工程根目录下, 执行git config user.email test@test.com以及git config user.name test. 此时改工程下的用户名和邮件会取代全局的用户名和邮件

bug记录

  • question : fatal: refusing to merge unrelated histories
  • method : git pull origin master --allow-unrelated-histories
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题描述 公司要求项目的git账号必须使用公司邮箱,而我平时写的一些小demo肯定是用的自己的邮箱绑定的账号,这样...
    Tony_Yang阅读 1,624评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 在实际工作中,常常会遇到多个git帐号(即多个远程仓库)的情况,这时候如果只有一个SSH-key则无法满足现有要求...
    landy8530阅读 3,355评论 2 12
  • 之所以写这篇文章是为了解决git 提交不成功,同时做个记录方便以后遇到同样的问题可以顺利解决。网上教程有很多,此处...
    ColaBean阅读 440评论 0 1
  • 女人,很有意思的生物。 如今的世界,男男女女间,变得越来越复杂有趣。 王某从小就长在了女人堆里。 王某妈妈是一个勤...
    木秀丶阅读 307评论 0 1