一台电脑设置多个Git账号
本文最后更新于:1 年前
我们可能经常会用到不止一个git账号(比如一个github一个gitee),用于管理不同的项目,那怎么在一台电脑上配置两个或两个以上的git账号呢,下面介绍一下具体的方法,也算做个记录,以后忘了可以来看看。
生成SSH Key
如果之前没有生成过SSH Key的话,需要先生成,在命令行内执行以下命令:
1 |
|
通常配置一个SSH Key的时候只要一路回车下去就行了,但是现在要配置多个,就不能一路回车到底了,因为要设置某些内容。在运行上面命令之后会一步一步的出现下面的提示内容:
1 |
|
在生成多个SSH Key重复执行上面的命令即可,在生成第二个之后的ssh keygen时,一定要把生成的ssh keygen文件名或者路径改掉,不要用默认的,不然会把前面生成的覆盖掉。密码有没有都无所谓,记不住就别设,免得到时候忘了密码用不了。
配置公钥
前面生成的ssh keygen文件正常情况下应该在C:\\\\User\\你的用户名\\.ssh
这个文件夹内,如果没有就自己搜索一下放在哪了吧,打开这个文件夹,你会看到有多个文件,把其中有pub
后缀的文件打开,将里面的内容添加到对应的git账号上,以GitHub为例,登录上你的GitHub账号,然后点击你的头像,在下拉菜单中找到settings,
然后在页面中找到SSH and GPG keys
这一项,
接着在右边点击New SSHKey
把对应的公钥文件内容复制进去,并且起一个名字,大体知道是用来做什么的。
配置config文件(重点)
进入.ssh
文件夹,查看这个文件夹内是否有名为config
的文件,如果没有就用touch config
新建一个(注意这个命令是bash内执行,如果使用的是cmd则不能用),在新建的文件内加上下面的内容:
1 |
|
说明:
HostName 真实的域名地址
IdentityFile 这个是id_rsa的地址(就是私钥的位置,上面两种写法都可)
PreferredAuthentications 配置登录时用什么权限认证(可设为publickey,password publickey,keyboard-interactive等)
User 配置使用用户名
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可,host可以取为便于区分的名字,如GitHub,gitee,这个host后续会影响到git的相关命令,如果忘了可以到这个config文件中查看。
测试是否配置成功
在命令行中输入下面的命令测试是否配置成功:
1 |
|
注意@后面不再是github.com
,而是前面你在config文件配置的host的名字。如果配置成功会返回下面的话:
1 |
|
设置提交用户名和电子邮件地址
在电脑上设置了多个git账号之后最好为每个项目分别设置提交的用户名和电子邮件,这样就不会有希望用这个账号提交项目,结果实际上是另外一个账号提交的情况发生了。另外,GitHub的contributions统计就是按照你提交时设置的邮箱来统计的。
如果已经设置了全局(global)的user和email,最好先取消掉:
1 |
|
然后为每个项目设置自己的user和email:
1 |
|
git通常有三个级别的配置文件,分别是:
/etc/gitconfig
文件:这个文件位于Git的安装目录下,包含系统上每一个用户及他们仓库的通用配置。 如果在执行git config
时带上--system
选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)~/.gitconfig
或~/.config/git/config
文件:只针对当前用户(在 Windows 系统中,一般情况下是C:\Users\$USER
)。你可以传递--global
选项让 Git 读写此文件,这会对你系统上 所有 的仓库生效。- 当前使用仓库的 Git 目录中的
config
文件(即.git/config
):针对该仓库。 你可以传递--local
选项让 Git 强制读写此文件,虽然默认情况下用的就是它。(当然,你需要进入某个 Git 仓库中才能让该选项生效。)
另外,每一个级别会覆盖上一级别的配置,所以 .git/config
的配置变量会覆盖 /etc/gitconfig
中的配置变量,也就是说Git会优先使用库级别的配置,再然后是global级别的配置,最后是system级别的配置。
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!