zoukankan      html  css  js  c++  java
  • Git 的这个神技,学会爽歪歪~

    640?wx_fmt=jpeg

    现在大多数公司都有 GIT 来管理代码版本控制了,既然用到 GIT,相信大家都接触过 Github、Gitlab、Gitee 这些远程仓库,或者是公司内部自行搭建的 GIT 仓库。

    当用到 SSH 方式来连接 GIT 仓库的时候,难免会同时用到多个仓库,一般生成公私钥的默认配置文件为:

    • 私钥:C:Usersxxx.sshid_rsa

    • 公钥:C:Usersxxx.sshid_rsa.pub

    那么问题来了,我先生成 Github 的,再生成 GitLab 的,那么后面配置的 Gitlab 的公私钥文件会覆盖前面配置 Github 的,从而导致 Github 仓库无法连接。。

    这样的配置只能同时连接一种类型的仓库,如何在同一台电脑做到同时连接多个不同的仓库呢?

    一、生成多个仓库公私钥

    1、生成 Github 的:

    ssh-keygen -t rsa -b 4096 -C "your_email@github.com" -f ~/.ssh/github_id_rsa

    2、生成 Gitlab 的:

    ssh-keygen -t rsa -b 4096 -C "your_email@gitlab.com" -f ~/.ssh/gitlab_id_rsa

    后面有多个仓库都依此类推,用 -f 来指定不同的文件名称:xxx_id_rsa,从而区分不同的仓库类型,而不用担心被后面默认生成的覆盖。

    二、将公钥添加到仓库里面

    复制 xxx_id_rsa.pub 公钥文件里面的内容到对应仓库里面,以下 Github 示例:

    640?wx_fmt=png

    三、添加 config 配置

    ~/.ssh 目录下创建 config 文件,添加以下内容:

    # github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id_rsa
    
    # gitlab
    Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_id_rsa
    
    # 多个依此类推
    # ...
    

    四、测试连通性

    分别测试多个仓库的连通性,验证配置是否生效。

    1、测试Github:

    $ ssh -T git@github.com

    2、测试Gitlab:

    $ ssh -T git@gitlab.com

    以下是 Github 连通示例:

    $ ssh -T git@github.com
    Enter passphrase for key '/c/Users/xxx/.ssh/github_id_rsa':
    Hi javastacks! You've successfully authenticated, but GitHub does not provide shell access.
    

    这样配置完,我们就能愉快的使用各种不同的仓库了~

    - END -

    推荐阅读:

    关注Java技术栈公众号在后台回复:git,可获取一份栈长整理的最新 Git 技术干货。

    640

    点击「阅读原文」和栈长学更多~

  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/java-stack/p/11952032.html
Copyright © 2011-2022 走看看