zoukankan      html  css  js  c++  java
  • 同一客户端多个git账号的配置

    同一客户端多个git账号的配置

    同一客户端多个git账号的配置

    步骤一:用ssh-keygen命令生成一组新的id_rsa_new和id_rsa_new.pub。

    1
    ssh-keygen -t rsa -C "new email"
    平时我们都是直接回车,默认生成id_rsa和id_rsa.pub。这里特别需要注意,出现提示输入文件名的时候要输入与默认配置不一样的文件名,比如:  id_rsa_new。

    步骤二:配置~/.ssh/config文件,以我自己的机器为例。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #Default Git
    Host defaultgit
      HostName IP Address #域名也可
      User think
      IdentityFile ~/.ssh/id_rsa
     
    #Second Git
    Host secondgit
      HostName IP Address #域名也可
      User think
      IdentityFile ~/.ssh/id_rsa_second

    Host就是每个SSH连接的单独代号,IdentityFile告诉SSH连接去读取哪个私钥。

    步骤三:执行ssh-agent让ssh识别新的私钥。

    1
    ssh-add ~/.ssh/id_rsa_new
    该命令如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent,可执行ssh-agent bash命令后再执行ssh-add命令。

    以后,在clone或者add remote的时候,需要把config文件中的host代替git@remoteaddress中的remoteaddress。

    同时,你可以通过在特定的repo下执行下面的命令,生成区别于全局设置的user.name和user.email。

    1
    2
    3
    4
    5
    git config user.name "newname"
    git config user.email "newemail"
     
    #git config --global --unset user.name 取消全局设置
    #git config --global --unset user.email 取消全局设置
    例子:
    1
    2
    3
    4
    5
    6
    #在同一机器不同目录下克隆远程同一个repo
    cd /home/user1
    git clone git@defaultgit:xxx.git
     
    cd /home/user2
    git clone git@secondgit:xxx.git
    上面的两条clone命令,虽然关联到同一个repo,却是通过不同ssh连接,当然也是不同的git账号。
  • 相关阅读:
    Golang string slice
    Golang 切片
    Golang 数组
    Golang随机数
    如何才能轻松地分析日志?
    Linux 环境下 gzip 的加解密命令
    谁掳走了 nginx.pid 文件?
    这个 'ip' 竟然把我搞蒙圈了……
    Mysql 连接路径 url 参数解析
    C# 接口生成工具Swagger用法
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/8540712.html
Copyright © 2011-2022 走看看