精华内容
下载资源
问答
  • Git多用户配置

    千次阅读 2016-09-01 21:49:51
    在Git使用中经常会碰到多用户问题,例如:你在公司里有一个git账户,在github上有一个账户,并且你想在一台电脑上同时对这两个git账户进行操作,此时就需要进行git多用户配置。

    转载请注明:noahsnail.com
        在Git使用中经常会碰到多用户问题,例如:你在公司里有一个git账户,在github上有一个账户,并且你想在一台电脑上同时对这两个git账户进行操作,此时就需要进行git多用户配置。
        首先配置不同的SSH KEY,使用ssh-keygen命令产生两个不同的SSH KEY,进入.ssh目录:

    #切换到.ssh目录
    cd ~/.ssh  
    #使用自己的企业邮箱产生SSH KEY
    ssh-keygen -t rsa -C "mywork@email.com"  
    #企业的可以使用id_rsa,也可以自己起名,例如:id_rsa_work
    Enter file in which to save the key (/Users/ltc/.ssh/id_rsa): id_rsa 
    #将ssh key添加到SSH agent中
    ssh-add ~/.ssh/id_rsa 

    同理,配置自己的github账户,再有其他账户类似:

    #切换到.ssh目录
    cd ~/.ssh  
    #使用自己github的注册邮箱产生SSH KEY
    ssh-keygen -t rsa -C "mygithub@email.com"  
    #github的SSH KEY
    Enter file in which to save the key (/Users/ltc/.ssh/id_rsa): id_rsa_github
    #将ssh key添加到SSH agent中 
    ssh-add ~/.ssh/id_rsa_github

    在生成ssh key之后,需要分别在github的profile中和公司git的profile中编辑SSH KEY,以github为例:
    image
    在图中添加Title,可以随便写:
    将.ssh目录下对应的id_rsa_github.pub中的内容拷到Key中,点击Add SSH key按钮即可。公司的git类似。
    然后在.ssh目录下配置config文件:

     #切换到.ssh目录
    cd ~/.ssh
    #创建并编辑config文件
    vim config 
    # 粘贴到config文件中
    #公司的git地址
    Host git.***.com  
       User git
       Hostname git.***.com  #公司的git地址
       IdentityFile ~/.ssh/id_rsa  #访问公司git的SSH KEY
       Port   ***  #公司的git端口
    
    Host github.com
       User git
       Hostname github.com #github的地址
       IdentityFile ~/.ssh/id_rsa_github  #访问github的SSH KEY

    测试配置是否成功

    #github的地址
    ssh -T git@github.com 
    #出现如下内容,表示成功链接github,***为你的github账户的用户名
    Hi ***! You've successfully authenticated, but GitHub does not provide shell access.
    #公司的git地址
    ssh -T git@git.***.com 
    #出现如下内容,表示成功链接github,***为公司git账户的用户名
    Hi ***! You've successfully authenticated, but GitHub does not provide shell access.

    此时,就可以分别访问公司的git和github了。

    文章作者:Tyan
    博客:noahsnail.com
    下载:本文PDF

    展开全文
  • Windows下git多用户配置

    2019-02-20 19:39:01
    在开发过程中,经常会遇到git多用户情况,如一个github用户,一个企业内部gitlab用户。本文简要介绍Window下多用户配置。 在多用户情况下,尽量不要设置全局用户信息。 #添加全局用户信息 git config --global ...

    在开发过程中,经常会遇到git多用户情况,如一个github用户,一个企业内部gitlab用户。本文简要介绍Window下多用户配置。

    在多用户情况下,尽量不要设置全局用户信息。

    #添加全局用户信息
    git config --global user.name "用户名"
    git config --global user.email "邮箱"
    #删除全局用户信息
    git config --global --unset user.name
    git config --global --unset user.email

    1、安装并完成git配置后,打开git bash命令行,切换到ssh目录。

    cd ~/.ssh

    2、生成的多个SSH Key

     使用ssk-keygen生成github用户ssh key,密钥文件is_rsa_github,公钥文件is_rsa_github.pub

    $ ssh-keygen -t rsa -C "github@qq.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): id_rsa_github
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_github.
    Your public key has been saved in id_rsa_github.pub.
    The key fingerprint is:
    SHA256:K8ZzHA4rrhgHlv7qyP+dAmvpQIq+jPUpbMdjXZncAnE github@qq.com
    The key's randomart image is:
    +---[RSA 2048]----+
    |                 |
    |      . E        |
    |       o         |
    |  .   .          |
    |.+    .oS+       |
    |*. . . =*o.      |
    |++o.=.*.=.       |
    |*=**==o+.        |
    |=OBO=o.o         |
    +----[SHA256]-----+
    

    使用ssk-keygen生成gitlab用户ssh key,密钥文件is_rsa_gitlab,公钥文件is_rsa_gitlab.pub

    $ ssh-keygen -t rsa -C "gitlab@qq.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): id_rsa_gitlab
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_gitlab.
    Your public key has been saved in id_rsa_gitlab.pub.
    The key fingerprint is:
    SHA256:2q7mo4MTScmOvsjl9Gk++rUwqNXvUpW7OeQdGdC95Mo gitlab@qq.com
    The key's randomart image is:
    +---[RSA 2048]----+
    |          . .    |
    |         . . o   |
    | . .      o o .  |
    |  +      o . o   |
    | + .    S o +    |
    |. + o  + o E     |
    |.  B +o.+ + .    |
    |o.O o+O..= .     |
    |.+.+*X**. .      |
    +----[SHA256]-----+

    生成文件如下:

    $ ls
    config         id_rsa_github.pub  id_rsa_gitlab.pub
    id_rsa_github  id_rsa_gitlab      known_hosts

    3、拷贝公钥账户到github个gitlab的SSH keys中

    将id_rsa_github.pub中的公钥拷贝到github个人账户的SSH keys中:

    将id_rsa_gitlab.pub中的公钥拷贝到gitlab个人账户的SSH keys中:

    4、 在.ssh目录创建config文本文件并完成相关配置

    #该文件用于配置私钥对应的服务器
    Host github.com
     User github
     Hostname github.com
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/id_rsa_github
    Host 192.168.12.5
     User gitlab
     Hostname 192.168.12.5
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/id_rsa_gitlab

    5、将密钥加入密钥管理器

    $ ssh-add ~/.ssh/id_rsa_github
    Enter passphrase for /c/Users/Administrator/.ssh/id_rsa_github:
    Identity added: /c/Users/Administrator/.ssh/id_rsa_github (/c/Users/Administrator/.ssh/id_rsa_github)
    
    $ ssh-add ~/.ssh/id_rsa_gitlab
    Enter passphrase for /c/Users/Administrator/.ssh/id_rsa_gitlab:
    Identity added: /c/Users/Administrator/.ssh/id_rsa_gitlab (/c/Users/Administrator/.ssh/id_rsa_gitlab)

    如遇到Could not open a connection to your authentication agent.提示,输入一下命令,在进行ssh-add

    $ ssh-agent bash

    6、测试

    $ ssh -T git@github.com
    Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa_github':
    Hi github! You've successfully authenticated, but GitHub does not provide shell access.
    
    $ ssh -T git@192.168.12.5
    Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa_gitlab':
    Welcome to GitLab, @gitlab!

    测试通过后,就可以在电脑上同时使用git多账号同时操作,互不影响。

    展开全文
  • git多用户切换

    万次阅读 2018-06-07 18:45:03
    如果是用https方式clone代码,那么可以通过修改git配置中的用户和邮箱来切换用户git config --global user.name "YOURUSERNAME" git config --global user.email "YOUREMAIL&...

    如果是用https方式clone代码,那么可以通过修改git配置中的用户和邮箱来切换用户:

    git config --global user.name "YOURUSERNAME" 
    git config --global user.email "YOUREMAIL"

    不过切换后要记得清除本地缓存(如windows里缓存的凭据,不清楚的同学请点传送门),否则git会一直尝试用本地缓存来访问新用户的仓库。

    如果是用git(ssh)方式clone代码,那修改git配置中的用户和邮箱就无效了,必须通过切换秘钥的方式来切换用户(对git的ssh访问不清楚的同学请点传送门):

    前提:两个不同用户对应的秘钥对均已在本地生成好(生成第二个秘钥的时候要注意不能用默认配置,否则会覆盖第一个秘钥):
    这里写图片描述

    id_rsa和id_rsa.pub对应一个用户的秘钥对,id_rsa_liqing和id_rsa_liqing.pub对应另一个用户的秘钥对。

    当前使用的是id_rsa,对应的用户是liqing-focus:
    这里写图片描述

    以下命令可以检查当前用户:

    ssh -T git@github.com

    以下命令可以检查当前秘钥:

    ssh-add -l

    此时我们想切换成另一个用户只需要把id_rsa换成id_rsa_liqing就可以了(当然,两个pub必须在对应的github用户的ssh配置中已经配置完毕):

    这里写图片描述

    以下命令可以删除秘钥(注意秘钥地址要换成你用ssh-add -l查出来的结果):

    ssh-add -d /Users/liqing/.ssh/id_rsa

    以下命令可以新增秘钥(注意秘钥地址要换成你要切换用户对应的秘钥地址):

    ssh-add /Users/liqing/.ssh/id_rsa_liqing

    对ssh-add不了解的同学请点传送门

    最后用检查一下用户是否成功切换:
    这里写图片描述

    可以看到liqing-focus用户已经成功切换成liqing-taoyanzoukaila用户了。

    展开全文
  • Git 多用户配置

    千次阅读 2019-07-12 19:24:32
    一般来说,安装好 git 后,我们都会配置一个全局的 config 信息,就像这样: git config --global user.name "jitwxs" // 配置全局用户名,如 Github 上注册的用户名 git config --global user.email "jitwxs@...

    一、引言

    一般来说,安装好 git 后,我们都会配置一个全局的 config 信息,就像这样:

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

    但是你可能会碰到需要在一台电脑上配置多个用户信息的需求。此时就不能够用一个全局配置搞定一切了。

    比如因为我的个人电脑出了问题,我想要提交我的个人项目时,只能用公司配的电脑去提交。而公司的电脑配置的是私有的 gitlab 仓库,而我自己的项目存储在 github 上。这两个仓库不仅仓库地址不一样,仓库的用户名和邮箱都不一样。

    二、配置多用户

    本文将配置分别是 github 以及 gitlab 上的两个用户,并分别在它们所属的项目上进行 git 操作,这差不多就是配置多用户的大部分操作了。

    GITHUB GITLAB
    用户名 jitwxs lemon
    邮箱 jitwxs@foxmail.com lemon@test.com

    2.1 清除全局配置

    在正式配置之前,我们先得把全局配置给清除掉(如果你配置过的话),执行命令:

    git config --global --list
    

    这会列出所有已经配置的全局配置,如果你发现其中有 user.nameuser.email 信息,请执行以下命令将其清除掉:

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

    2.2 生成钥对

    钥对的保存位置默认在 ~/.ssh 目录下,我们先清理下这个目录中已存在的钥对信息,即删除其中的 id_rsaid_rsa.pub 之类的公钥和密钥文件。

    首先我们开始生成 github 上的仓库钥对,通过 -C 参数填写 github 的邮箱:

    ssh-keygen -t rsa -C “jitwxs@foxmail.com”
    

    按下 ENTER 键后,会有如下提示:

    Generatingpublic/privatersa key pair.Enter fileinwhich to save the key (/Users/jitwxs/.ssh/id_rsa):
    

    在这里输入公钥的名字,默认情况是叫 id_rsa,为了和后面的 gitlab 配置区分,这里输入 id_rsa_github。输入完毕后,一路回车,钥对就生成完毕了。

    下面开始生成 gitlab 上的仓库钥对,步骤和上面一样:

    ssh-keygen -t rsa -C “lemon@test.com”
    

    生成的公钥名就叫做:id_rsa_gitlab

    2.3 添加 SSH Keys

    我相信你既然都看到这篇文章了,你一定掌握了如何将公钥添加到 SSH Keys 中。请将 id_rsa_github.pubid_rsa_gitlab.pub 内容分别添加到 github 和 gitlab 的 SSH Keys 中,这里就不啰嗦了。

    2.4 添加私钥

    在上一步中,我们已经将公钥添加到了 github 或者 gitlab 服务器上,我们还需要将私钥添加到本地中,不然无法使用。添加命令也十分简单,如下:

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

    添加完毕后,可以通过执行 ssh-add -l 验证下,如果都能显示出来和下面一样,就 OK 了。

     ~  ssh-add -l
    2048 SHA256:mXVNxWHZsZpKOnHlPslF2jXAWR+jc7M6P5hYbrCo jitwxs@foxmail.com (RSA)
    2048 SHA256:Blhp3+Hx5mp9HDivFjDuwc/PaQ8ux45TRa6nTsfIe0PEz4 lemon@test.com (RSA)
    

    2.5 管理密钥

    通过以上步骤,公钥、密钥分别被添加到 git 服务器和本地了。下面我们需要在本地创建一个密钥配置文件,通过该文件,实现根据仓库的 remote 链接地址自动选择合适的私钥。

    编辑 ~/.ssh 目录下的 config 文件,如果没有,请创建。

    vim ~/.ssh/config
    

    配置内容如下:

    Host github
    HostName github.com
    User jitwxs
    IdentityFile ~/.ssh/id_rsa_github
    
    Host gitlab
    HostName gitlab.mygitlab.com
    User lemon
    IdentityFile ~/.ssh/id_rsa_gitlab
    

    该文件分为多个用户配置,每个用户配置包含以下几个配置项:

    • Host:仓库网站的别名,随意取
    • HostName:仓库网站的域名(PS:IP 地址应该也可以)
    • User:仓库网站上的用户名
    • IdentityFile:私钥的绝对路径

    注: Host 就是可以替代 HostName 来使用的别名,比如我 github 上某个仓库的 clone 地址为:

    git@github.com:jitwxs/express.git
    

    那么使用 Host 后就是:

    git@github:jitwxs/express.git
    

    咳咳,反正我觉得没啥用,毕竟 remote 地址都是直接复制下来的,没人会手敲吧?

    可以用 ssh -T 命令检测下配置的 Host 是否是连通的:

    ~/.ssh  ssh -T git@github
    Hi jitwxs! You've successfully authenticated, but GitHub does not provide shell access.
    ~/.ssh  ssh -T git@gitlab
    Welcome to GitLab, @lemon!
    

    当然不用 Host 用 HostName 也是一样的:

    ~/.ssh  ssh -T git@github.com
    Hi jitwxs! You've successfully authenticated, but GitHub does not provide shell access.
    ~/.ssh  ssh -T git@gitlab.mygitlab.com
    Welcome to GitLab, @lemon!
    

    2.6 仓库配置

    恭喜你!完成以上配置后,其实你已经基本完成了所有配置。分别进入附属于 github 和 gitlab 的仓库,此时都可以进行 git 操作了。但是别急,如果你此时提交仓库修改后,你会发现提交的用户名变成了你的系统主机名。

    这是因为 git 的配置分为三级别,System —> Global —>Local。System 即系统级别,Global 为配置的全局,Local 为仓库级别,优先级是 Local > Global > System。

    因为我们并没有给仓库配置用户名,又在一开始清除了全局的用户名,因此此时你提交的话,就会使用 System 级别的用户名,也就是你的系统主机名了。

    因此我们需要为每个仓库单独配置用户名信息,假设我们要配置 github 的某个仓库,进入该仓库后,执行:

    git config --local user.name "jitwxs"
    git config --local user.email "jitwxs@foxmail.com"
    

    执行完毕后,通过以下命令查看本仓库的所有配置信息:

    git config --local --list
    

    至此你已经配置好了 Local 级别的配置了,此时提交该仓库的代码,提交用户名就是你设置的 Local 级别的用户名了。

    展开全文
  • 以前都在使用svn,现在用git,我拥有管理员权限,但是怎么给其他开发人员分配权限呢?
  • git多用户管理及权限控制

    千次阅读 2019-02-13 19:09:32
    所以我们说其实git在很方面和svn是很相识的。  提到用户,那么用户的管理和权限控制就是避不开的话题了。  一.新建用户  新增git账号其实就是添加一个系统用户,将这个用户作为git账号:    首先建新增用户,...
  • 最近碰到一个比较麻烦的Git的应用场景:就是一台电脑上,...那么有没有办法可以在一台电脑上配置Git用户,不同的Push地址呢?经过查询和实验,发现是可以实现的。我就以Github来举例说明(服务器的地址都是gi...
  • Git配置用户

    2020-09-24 15:49:48
    Git多用户配置 两个仓库,github上一个,gitlab上一个,用户名与密码不同,而且两个项目都需要处理。这时候就需要配置多个用户,进行不同仓库的操作。 1. 清除之前的全局配置 # 列出全局用户名,邮箱配置 git ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,736
精华内容 73,894
关键字:

git多用户