Git多用户,不同项目配置不同Git账号

最近碰到一个比较麻烦的Git的应用场景:就是一台电脑上,可能有个git工程,每个工程的地址和账号密码又是不一样的,刚开始的就是要用那个工程了,就修改下全局的user.name,user.email,但是每次都是很麻烦,甚至会push错地方。

那么有没有办法可以在一台电脑上配置多个Git用户,不同的Push地址呢?经过查询和实验,发现是可以实现的。我就以Github来举例说明(服务器的地址都是github.com,也可以是不同的地址),如何配置多用户,多地址提交项目。首先假设有两个账号:一个Github的账号是A,另一个Github的账号是B

1. 配置多个Git用户

首先呢,我们要为不同的Github账号配置不同的Git账号

为A用户生成:

$ git config user.name "A"
$ git config user.email "A@hotmail.com"

注意:这里git config命令没有带—global,表示这是一个局部的设置,也就是这个用户是当前项目的,而不是全局的。

为B用户配置:

$ git config user.name "B"
$ git config user.email "B@gmail.com"
2. 为不同的用户生成SSH密钥

一般的Git服务器为了安全,都会需要我们提供一个安全的SSH密钥,默认情况下,生成密钥的文件名都是一样的,但是不同的用户,必须设置不同文件名的密钥文件,否则会发生覆盖。密钥生成后,添加到服务端(如Github)

为A用户生成SSH:

$ ssh-keygen -t rsa -C “A@hotmail.com”

运行后,会然你输入存储密钥文件的地址和密码,自己决定就行,最好是用默认的路径,然后修改下密钥文件名,类似下面的:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/lange/.ssh/id_rsa.
Your public key has been saved in /c/Users/lange/.ssh/github_id_rsa.pub.
The key fingerprint is:
SHA256:mRAluu98izlMRIQhaezphUvRHnkEH5HFm+aAX6wtXBU zlzsam@hotmail.com
The key's randomart image is:
+---[RSA 2048]----+
| ..ooBB*o E.     |
|  =.=o++. .      |
| o =.=o. +       |
|  = +.o.Bo       |
| o o.+ OS        |
|  o  .* o        |
|     o..         |
|     ooo.        |
|      =o..       |
+----[SHA256]-----+

为B用户生成SSH(同样的按A的步骤,唯一不同的是密钥文件名和账户密码的不同):

ssh-keygen -t rsa -C “B@gmail.com”

最后会生成四个文件,在我的电脑如下:

-rw-------  1 lange  staff  1679 12 18 21:13 id_rsa
-rw-r--r--  1 lange  staff   407 12 18 21:13 id_rsa.pub
-rw-------  1 lange  staff  1766  1  4 21:55 lapisy_id_rsa
-rw-r--r--  1 lange  staff   404  1  4 21:55 lapisy_id_rsa.pub

注意:这里使用邮箱地址来生成的,跟用户生成Git账号的邮箱保持一致

3. SSH多账户配置

在生成密钥的.ssh目录下,新建一个config文件,配置多账户规范,举个样例:

#github ontheroadtomine@gmail.com
host github.com  #别名,随便定 后面配置地址有用
    Hostname github.com #要连接的服务器
    User ontheroadtomine #用户名
    IdentityFile ~/.ssh/id_rsa  #密钥文件的地址,注意是私钥

#github softgeek@163.com
host lapisy #别名,随便定
    Hostname github.com
    User lapisy
    IdentityFile ~/.ssh/lapisy_id_rsa
4. 增加新的私钥

使用ssh的ssh-add命令将密钥添加到 ssh-agent 的高速缓存中,这样在当前会话中就不需要再次输入密码了 。

$ ssh-agent bash
//A账户的私钥
$ ssh-add ~/.ssh/id_rsa

//B账户的私钥
$ ssh-add ~/.ssh/lapisy_id_rsa

添加完后,可以使用ssh-add来查看密钥列表

5. 修改push的地址

默认情况下,我们项目下的.git目录下,config文件的内容:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[user]
    email = softgeek@163.com
    name = lapisy
[remote "origin"]
    url = git@githu.com:Lapisy/RecyclerViewSample.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

其中的remore地址是url = git@githu.com:Lapisy/RecyclerViewSample.git,这时候,我们需要修改跟密钥对应的地址,上面在配置ssh时,为每个Hostname配置了一个host的别名,这时候,我们就不能使用原来的Hostname来提交了,要用别名来代替Hostname。如上面de

url = git@githu.com:Lapisy/RecyclerViewSample.git

需要修改成对应的

url = git@lapisy:Lapisy/RecyclerViewSample.git

然后就可以正常push了。

注意:在向Github push 工程时,可能会碰到一个Bug,提示:

remote: error: GH007: Your push would publish a private email address.
remote: You can make your email public or disable this protection by visiting:
remote: http://github.com/settings/emails
To lapisy:Lapisy/RecyclerViewSample.git
 ! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@lapisy:Lapisy/RecyclerViewSample.git'

这里需要到Github中去把邮箱设置成public,或者不让他阻止我们push,如下图:
Git-github-email-setting.png

欢迎进入到 http://blog.lapisy.com 查看更多文章

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在w11上配置多个git账号,可以按照以下步骤进行操作: 1. 首先,在用户文件夹中找到.ssh文件夹。如果没有该文件夹,可以手动创建一个新的文件夹,并将其命名为.ssh。[1] 2. 在.ssh文件夹中创建一个名为config的文件。这个文件将用于配置多个git账号的信息。 3. 打开config文件,使用文本编辑器编辑该文件。在文件中,按照以下格式添加每个git账号配置信息: ``` Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github Host github-second HostName github.com User git IdentityFile ~/.ssh/id_rsa_github_second ``` 这里的`Host`可以是你想要设置的任意名称,`HostName`是git的服务器地址,`User`是git的用户名,`IdentityFile`是私钥文件的路径。你可以为每个git账号设置不同的`Host`和`IdentityFile`。 4. 保存并关闭config文件。 5. 接下来,生成一个新的SSH密钥对。在终端中运行以下命令: ``` ssh-keygen -t rsa -C 'your_email@example.com' -f ~/.ssh/id_rsa_github_second ``` 这里的`your_email@example.com`应替换为你的邮箱地址,`id_rsa_github_second`是你为第二个git账号生成的密钥文件名。 6. 按照提示设置密钥的密码(可选)。 7. 将生成的公钥添加到你的git账号的设置中。 - 对于github.com,请将公钥内容复制到GitHub的SSH设置页面中。 8. 现在,你可以使用不同git账号进行操作了。 - 当连接到第一个git账号时,使用`git@github.com`作为远程主机地址。 - 当连接到第二个git账号时,使用`git@github-second`作为远程主机地址。 注意:在进行git操作时,需要指定正确的远程主机地址以及相应的git账号信息。 这样,你就成功配置了w11上的多个git账号。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [如何配置多个git账号/多个远程仓库](https://blog.csdn.net/weixin_39729784/article/details/111726124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值