同一台电脑访问gitee多个仓库代码

         在开发上我们经常遇到,需要跟别人共享代码,特别是跟有些客户联合开发的情况下,有很多个客户。有些git仓库是客户建立的,比如有两个客户A和分布建了gitA和gitB两个代码仓库。我们在支持这两个客户的时候可能是同一个工程师,那这个工程师怎么访问这两个git代码仓库呢?

       我们都比较熟悉的下载代码使用git clone通过ssh下载git仓库代码;要下载这个仓库的代码,我们就需要把我们电脑上的ssh公钥的key配置到这个仓库权限里面去;通过gitA的公钥管理添加公钥即可;但是如果有两个工程呢?实践证明不能使用同一个公钥,提示公钥被他人占用了,那怎么办呢?

同一台电脑访问gitee多个仓库代码_第1张图片

  可以这样:再生成一个公钥,通过ssh-keygen来;

ssh-keygen -t rsa -C "youremail" 

回车,保存key的文件名称需要跟以前的不一样,不然就覆盖掉了,比如输入id_rsa_key2;

有了id_rsa_key2.pub,我们把它的内容粘贴到gitB的公钥管理里面去添加上,这样添加了在git仓库端的配置就算完成了。

   迫不及待的试试同步代码,发现后面添加的gitB同步不了代码,被拒绝了?gitA这个时候是可以正常同步的;

同一台电脑访问gitee多个仓库代码_第2张图片

那怎么办?

需要配置ssh的config,把几个公钥都配置进去:

# Default GitHub  gitA
Host gitee.com
  HostName gitee.com
  User git
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa1

# id_rsa_key2  gitB
Host tsgitee.com
  HostName gitee.com
  User git
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_key2

我们可以发现其实gitA,gitB的HostName都是一样的,同一个平台的,gitee.com的。user都是git,证书存放的位置就各有一些不一样了,根据实际密钥名称来填写。

/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/

注意,我们发现Host是不大一样的,因为gitA和gitB的HostName是一样的,没法区别了,只有通过一个Host的别名来区分一下该使用哪对密钥。那么gitB的下载地址本身是:[email protected]:ds/gitB.git,你发现通过这个地址没法下载,就算以前下载了也sync不来代码;

同一台电脑访问gitee多个仓库代码_第3张图片

那得使用上Host的别名啊!地址变更一下:[email protected]:ds/gitB.git,这样子一改变,发现下载代码好使了,

同一台电脑访问gitee多个仓库代码_第4张图片

这样看git remote信息

这样下来,就可以同时支持下载到两个工程的代码了。

你可能感兴趣的:(gitee,linux,嵌入式硬件)