美文网首页
Mac git配置多账号

Mac git配置多账号

作者: Geroge1226 | 来源:发表于2019-06-21 13:50 被阅读0次

    说明:git配置网上资源已经很丰富,本人只是整理测试,再次分享记录,以便后来者查阅。

    使用场景

    工作中或者自主学习时候,会使用到同一台计算机多个git账号,比如github,gitlab,gitee


    情景一:

    gitlab,gitee,github使用的是同一个邮箱账号注册情况

    只需要使用ssh-key 工具生成一次公私秘钥,然后将公钥id_rsa.pub 设置在各个git网站的ssh公钥上,即可

    情景二:

    gitlab,gitee,github使用不同邮箱账号注册情况

    准备工作:

    首先,需要准备好对Git的全局用户进行配置。在初次安装Git时,往往会使用如下的命令配置全局用户名和邮箱:

    git config --global user.name "xxx" // 配置全局用户名,如Github上注册的用户名
    git config --global user.email "yyy@mail.com" // 配置全局邮箱,如Github上配置的邮箱
    

    这个--global选项,是指这里配置的user.name和user.email是相对于全局进行配置的,即不同的Git仓库默认的用户名和邮箱都是这个值。由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。对此,有两种处理方法:

    如果之前已经使用该命令进行配置,则先使用如下命令清除

    git config --global --unset user.name
    git config --global --unset user.email
    

    如果不确定是否已经配置过,可以使用下面的命令查看

    git config --global user.name
    git config --global user.email
    

    1.切换.ssh目录

    cd ~/.ssh
    

    2.使用ssh-keygen生成公私钥

    ssh-keygen -rsa -C 337462386@qq.com
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): id_rsa_gitlab 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /Users/xxxx/.ssh/id_rsa_gitlab 
    Your public key has been saved in /Users/xxxx/.ssh/id_rsa_gitlab.pub
    The key fingerprint is:
    SHA256:4yNiKfqWOLUU1fSxG0PO49F+LQ9ofgNcq0QLEQhR6EI 337462386@.com
    The key's randomart image is:
    +---[RSA 2048]----+
    |    oBo.=.       |
    |  E o o= =       |
    | . o    @ o .    |
    |  o .  . @ + o   |
    |   o    S O = .  |
    |  o  . . = + +   |
    | +.o+ . o o o .  |
    |o.+o . . . . .   |
    |.+.              |
    +----[SHA256]-----+
    

    注意:这里默认秘钥文件名称id_rsa,可以根据不同git自定义不同名称

    3.将私钥配置到本地

    SSH协议的原理,就是在托管网站上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成了秘钥文件,接下来需要使用秘钥文件,首先是在本地使用秘钥文件:

    ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
    ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地
    

    为了检验本地是否添加成功,可以使用ssh-add -l命令进行查看

    4. 配置多账号本地config

    新建config文件:touch config

    Host github // 网站的别名,随意取
    HostName github.com // 托管网站的域名
    User xxxx // 托管网站上的用户名
    IdentityFile ~/.ssh/id_rsa_github // 使用的密钥文件
    
    // GitLab的配置相同
    Host gitlab
    HostName gitlab.com
    User xxxx
    IdentityFile ~/.ssh/id_rsa_gitlab
    

    config文件详解

    每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可

    Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
    Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
    git clone git@mygithub:PopFisher/AndroidRotateAnim.git
    HostName         这个是真实的域名地址
    IdentityFile         这里是id_rsa的地址
    PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
    User            配置使用用户名

    5.配置公钥到Git网站

    以Gitlab为例子,先在本地复制公钥。进入.ssh目录,使用vim id_rsa_gitlab.pub查看生成的GitHub公钥,全选进行复制。

    登录gitlab,点击右上角头像选择settings,在打开的页面中选择SSH keys


    屏幕快照 2019-06-21 下午2.07.12.png

    填写公钥key ,title 可以随意起

    相关文章

      网友评论

          本文标题:Mac git配置多账号

          本文链接:https://www.haomeiwen.com/subject/vtwloqtx.html