Windows下多个git账户使用

1. 为每个账户分别创建SSH密钥

Windows系统下, git 的ssh文件夹通常在C:\Users\[your user name]\.ssh (将[your user name] 替换成你的用户名。
在此处唤出git bash, 输入命令 ssh-keygen -t rsa -C "your-email-address" ,这里的邮箱地址我填的是github生成的隐私保护地址,你也可以填写其他与github绑定的邮箱。该条命令执行之后,会让你输入文件名(例如我输入"sec_account")。所有命令执行成功后会在文件夹中生成sec_account(私钥)和sec_account.pub(公钥)两个文件。

Note: 需要N个账户,就需要创建N个RSA密钥

2. 在Github用户设置中添加公钥

用文本编辑器(记事本,Notepad++ 等)打开步骤1生成的sec_account.pub文件,文件内容开头几个字符是ssh-rsa

在Github网站上登录,进入"Setting"->“SSH and GPG keys”, 选择New SSH Key,然后将sec_account.pub文件中的文本粘贴赋值在输入框中。 标题可以随便写。
在这里插入图片描述

3. 添加Config文件并测试SSH连接

返回C:\Users\[your user name]\.ssh 文件夹。如果该文件夹下没有config文件,则可以新建一个config文件,手动右键或者使用命令行touch ~/.ssh/config都可以。在该文件中配置多用户和相关密钥的联系。为每一个用户,输入以下配置信息:

Host [host]
Hostname ssh.github.com
IdentityFile ~/.ssh/[rsa key name]
User [your user name]

参数说明:

  • [host]替换成任意合法字段都可以,但在后面测试和push到远程仓库是都会用到,所以不必要设置的太复杂,我习惯git_[username] 来区分不同账户。
  • [rsa key name]是步骤1中生成的密钥的名字,也是每个账户一个
  • Your user name 输入github的username

用例:

# Public
Host git_alex
Hostname ssh.github.com
IdentityFile ~/.ssh/first_account
User git_alex
  
# Individual
Host git_bob
Hostname ssh.github.com
IdentityFile ~/.ssh/sec_account
User bob

保存config文件后,打开git命令行,来测试配置是否正确。输入命令ssh -T git@[host] 其中[host] 就是在config文件中配置的信息。根据上面的例子,我输入ssh -T git@git_bob ,执行命令后会输出以下信息,直接输入yes即可。如果想检查host的指纹,以确定地址没有被劫持,可以在Github Fingerprint中找到相应的哈希值。

> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
> Are you sure you want to continue connecting (yes/no)?

如果以上配置正确,输入yes后,命令窗口输出以下信息:

> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.

4 本地仓库设置

4.1 仓库个人信息设置

大多数中文教程里提到需要删除全局用户名和用户邮箱。但是这并不是必需的,使用全局邮箱和用户名并不会影响你向不同用户的仓库推送。但是需要注意的是,Github的Contribution只计算Primary Email的主分支,因此如果你想玩Github的涂色游戏的话,还是需要为每个仓库独立设置用户名和邮箱:

输入以下命令,删除全局用户名和邮箱:

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

在需要上传的仓库,设置本地用户名和邮箱:

git config user.name 'bob'
git config user.email'bob@example.com'

4.2 添加远程仓库

由于本教程使用SSH连接,而不是直接用HTTPS,所以推送远程仓库的时候只能使用SSH方式。

  1. 复制远程仓库的ssh克隆地址。例如git@github.com:repo/username.github.io.git
  2. 将上面地址中的github.com改成步骤3中设置的[host]值,Bob账户新的ssh远程仓库地址即是git@git_bob:repo/username.github.io.git
  3. 在需要push的仓库中输入git remote add origin_ssh git@git_bob:repo/username.github.io.git

5 推送分支到远程仓库

输入git push origin_ssh master 将当前分支推送到远程仓库
在这里插入图片描述


References:

  1. Testing your SSH connection
  2. 如何在一台电脑上设置多个github账号
  3. Git’s famous “ERROR: Permission to .git denied to user”
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为你讲解如何从安装到多账户操作一套搞定。 首先,你需要安装 Git。如果你使用的是 Mac 或 Linux 操作系统,那么 Git 可以直接通过终端命令安装。如果你使用的是 Windows,那么可以从 Git 官网下载安装包进行安装。安装完成后,你可以在终端或命令行窗口中输入 `git` 命令来测试是否安装成功。 接下来,我们来学习 Git 的入门使用。首先,你需要在本地创建一个 Git 仓库。在终端或命令行窗口中进入你要创建仓库的目录,然后执行以下命令: ``` git init ``` 这会在当前目录下创建一个名为 `.git` 的隐藏文件夹,这就是 Git 仓库。接下来,你可以使用以下命令来将文件添加到仓库中: ``` git add <file> ``` 其中 `<file>` 是你要添加的文件名。你可以使用 `git add .` 命令将所有文件添加到仓库中。添加完成后,你需要使用以下命令来提交更改: ``` git commit -m "提交信息" ``` 其中 `"提交信息"` 是你的提交信息,这个信息应该简明扼要地描述你此次提交的内容。 现在,你已经学会了 Git 的基本操作。接下来,我们来学习如何在 Git 中管理多个账户。 在使用 Git 的过程中,如果你需要在同一台电脑上使用多个 Git 账户,那么你需要进行如下配置: 1. 生成 SSH Key 在终端或命令行窗口中执行以下命令: ``` ssh-keygen -t rsa -C "youremail@example.com" ``` 其中 `"youremail@example.com"` 是你的邮箱地址。这个命令会在默认路径下生成一个 SSH Key,你可以使用默认路径,也可以指定其他路径。 2. 配置 SSH Key 将 SSH Key 添加到你的 Git 账户中。在 Git 账户的设置页面中找到 SSH Keys 选项,将生成的 SSH Key 复制到其中。 3. 配置多个账户 在终端或命令行窗口中执行以下命令: ``` git config --global user.name "Your Name" git config --global user.email "youremail@example.com" ``` 其中 `"Your Name"` 和 `"youremail@example.com"` 分别是你的用户名和邮箱地址。这个命令会将这些信息保存到 Git 的配置文件中。 接下来,你可以在你的电脑上创建多个 SSH Key,然后将这些 Key 分别添加到不同Git 账户中。每次使用 Git 时,你只需要通过 `git config` 命令来配置当前使用账户即可。 以上就是从安装到多账户操作一套搞定的入门使用方法。希望能帮助到你!如果你还有其他问题,可以继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值