git多用户管理

作者: jarvan4dev | 来源:发表于2016-08-26 12:02 被阅读1448次

    为什么会去用到多用户呢?其实主要是因为这次在给fastjson提PR的时候被拒了,原因如图:



    GongXunyao是我在公司的git账户,jarvan4dev是我的github账户,所以我觉得是时候用下git的多账户管理了!


    cd ~/.ssh
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    # 你在公司用git,肯定已经生成了公私钥,id_rsa/id_rsa.pub
    # 所以这里就需要重新生成了,名字不能和原来重复,可以叫id_rsa_github
    Enter file in which to save the key (/Users/jarvan4dev/.ssh/id_rsa): id_rsa_github
    # 然后就直接两次回车吧
    # 将生成的key加入 ssh-agent
    ssh-add ~/.ssh/id_rsa_github
    # 将公钥加入到github,参考:https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
    
    # 配置使用固定的公钥去访问github
    vim ~/.ssh/config
    # 加入如下配置
    Host github
     HostName github.com
     User jarvan4dev
     IdentityFile ~/.ssh/id_rsa_github
    

    TODO 关于该配置,需要再深入学习下,希望知道的人告诉我下

    # 测试是否连通
    ssh -T git@github.com
    # 如果连通,输入如下:
    Hi jarvan4dev! You've successfully authenticated, but GitHub does not provide shell access.
    # 如果未连通,输出如下:
    Permission denied (publickey).
    # 查看当前在使用的key
    ssh-add -l
    # 如果当前没有key,则:The agent has no identities. 此时需要添加key
    ssh-add ~/.ssh/id_rsa
    # ssh-add 这个命令不是用来永久性的记住你所使用的私钥的。实际上,它的作用只是把你指定的私钥添加到 ssh-agent 所管理的一个session 当中。而 ssh-agent 是一个用于存储私钥的临时性的 session 服务,也就是说当你重启之后,ssh-agent服务也就重置了。
    可以使用 :
    ssh-add -K ~/.ssh/id_rsa_github
    输出如下:
    Passphrase stored in keychain: /Users/jarvan4dev/.ssh/id_rsa_github
    Identity added: /Users/jarvan4dev/.ssh/id_rsa_github (/Users/jarvan4dev/.ssh/id_rsa_github)
    
    # 配置git账户
    git config --list #查看当前配置
    git config --list [--local] #查看当前仓库配置
    git config --list --global #查看全局配置
    # 配置全局账户(配置文件位于 ~/.gitconfig中)
    git config --global user.name "your_name"  # 如果是提到github上,your_name最好是你的github账户的名字
    git config --global user.email "your_email@example.com"  # 如果是提到github上,your_email@example.com最好是你的github账户的邮箱
    # 配置本地仓库账户 (配置文件位于当前仓库目录的.git/config中)
    git config [--local] user.name "your_name_in_company"  # 如果是提到github上,your_name最好是你的github账户的名字
    git config [--local] user.email "your_company_email@example.com"  # 如果是提到github上,your_email@example.com最好是你的github账户的邮箱
    

    小tip

    因为公司基本上就几个仓库,而你在github上可能随时就新建或者clone一个仓库,理论上你的github仓库多余公司的仓库
    这样的话,可以在全局使用github账户配置,在公司的仓库中使用局部配置

    相关文章

      网友评论

      本文标题:git多用户管理

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