Git多账号登陆

4 篇文章 0 订阅
4 篇文章 0 订阅

前言

    最近工作上遇到了使用git+repo的情况,需要用公司的邮箱和账号名重新申请ssh公私密钥,而我本身在github上也有一些开源项目,这里就是记录一下我是如何实现git多账号登陆的。

取消git全局设置

    很多同学照着网上的教程,都会对git进行全局设置,例如:
git config --global user.name "your_name"
git config --global user.email  "your_email"
    如果你多参与的项目都允许你用同一个用户名和邮箱,这样设置当然没问题,但是,一旦你进入公司,估计是没有自主选择权利的,公司都会配置相应的域账号和邮箱,因此我们首先需要取消git的全局设置。
git config --global --unset user.name
git config --global --unset user.email
    针对每个项目,单独设置用户名和邮箱,设置方法如下:
mkdir ~/test // git检出目录
cd ~/test
git init
git config user.name "your_name"
git config user.email "your_email"
    说白了,也就是进入到你的git项目相对根目录下,然后执行git config来设置user.name和user.email。

SSH配置

    我看了很多中文博客,发现讲的都不太清楚,还是在stackoverflow上,找了一个问题解决我的疑惑: http://stackoverflow.com/questions/14689788/multiple-github-accounts-what-values-for-host-in-ssh-config 。解决方法总结如下:
    1. 我现在有两个git项目,使用的用户名分别是A和B,用的邮箱分别是C和D。
    2. 在~/.ssh目录下,使用 ssh-keygen -C "your_email" -t rsa 生成公私秘钥,命名分别为 id_rsa_first, id_rsa_second,公钥的内容需要分别上传到相应git项目的服务器上。
    3. 在~/.ssh目录下创建config文件,进行相应配置:
#第一个git项目账号
Host first
HostName test.com #这里需要用真实的项目检出hostname,为了项目安全,我这里随意写的
User A
IdentityFile ~/.ssh/id_rsa_first

#第二个git项目账号
Host second
HostName test2.com
User B
IdentityFile ~/.ssh/id_rsa_second
    4. 新建git项目检出目录,我发现很多同学出问题,在于git项目没有初始化
mkdir project && cd project
git init
git config user.name "A"
git config user.email "C"
    相应的第二个项目也参照上面的指令进行初始化设置。
    5. 检出服务端项目代码,这里需要注意,使用.ssh目录下的host代替真实的hostname,这样才能让git识别出来
git remote add first $giturl
    $giturl代表的是A项目的git clone的url地址。
    6. git pull 拉取A git项目代码。
git pull first master
    可以指定为master分支或者其他分支,但是first标识不能变,不能单纯的认为是original。
    7. push的时候,push到对应的Host即可。
git push first $branch

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值