1. 背景
当电脑本地需要连接多个服务器的时候,git就需要配置多个账户对应不同的git仓库;
2. 方法
通过配置local config 文件来实现,git 配置的架构就是:一个global config和多个local config。global配置一个之后会默认存在/c/Users/you/.ssh文件夹下面。在git bash中可以通过以下命令查看。
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
默认情况下,文件名字是以下名字作为public key:
- id_rsa.pub
- id_ecdsa.pub
- id_ed25519.pub
local 配置文件的话,可以存在任何文件夹下面:这个跟着每个仓库进行选择;
3. Git UI 配置步骤
3.1. 配置global 账户
在电脑上的任何一个文件夹下右键选择TortoiseGit->Settings, 在方框中配置自己的Name和Email然后应用,查看Effective选项下Name和Email会跟着改变,配置完成。
在一个指定的仓库中如果没有特殊配置的话,就会使用这个配置的global用户名和邮箱。
3.2. 配置Local账户
在指定的仓库文件夹下右键选择TortoiseGit->Settings,选择Local配置选项;如图,配置仓库的name和email, 去掉后面的inherit的选项,当前有效的name和email就是 local选项下的配置。
然后选择remote页,在该页面下配置仓库地址和Putty key,Putty Key就是自己本地账户生成的key, 该key为该仓库专用,除去默认文件夹下的,该key可以放在任何文件夹下。这样子本地的配置就可以屏蔽global的配置,独立工作;
4. Git Bash配置步骤
4.1. 配置Global Config
$ git config --global user.name="your_name"
$ git config --global user.email="your_email@example.com"
Git 操作使用的key默认使用 /c/Users/you/.ssh 文件夹下面的key.
4.2. 配置Local Config
$ git config --local user.name="your_local_name"
$ git config --local user.email="your_local_email@example.com"
key 的配置使用如下两条命令:
# start the ssh-agent in the background
$ eval "$(ssh-agent -s)"
> Agent pid 59566
# Add your SSH private key to the ssh-agent
$ ssh-add ~/.ssh/id_rsa
注意按照上述方法配置之后,每次启动git bash的之后需要跟远程仓库交互的时候都会需要重新输入上述两条命令。
有两种方法用于解决上述情况:
(1)直接将local key放到C:\Users\you\.ssh文件夹下面,使用全局key;
(2)将这两行命令放在 git安装目录下面的 /etc/bash.bashrc文件中,每次启动git bash的时候都会执行;
总结:
综上,多个账户可以配置多个local,就可以多账户工作了。
查看当前配置文件可以通过以下命令查看:
$ git config --global --list
$ git config --local --list
参考连接: Git - Documentationhttps://git-scm.com/doc
Authentication - GitHub Docshttps://docs.github.com/en/authentication