抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Git 多用户名和邮箱配置

对于大多数人来说,都有两个或者多个Git账户,对于多 ssh 的配置这里不进行赘述,毕竟共用一个 ssh 也是可以的,密匙仅仅只是为了验证用户权限罢了,对于多个不同的项目,需要使用不同的用户进行提交,是主要内容。

都知道,在 git 刚刚安装第一次提交的时候,会提示输入账户信息,以及会推荐使用 git config --global 命令进行全局用户信息的配置,毕竟默认大家都只有一个用户。那么 –global 是不是说 git 还有其他层级的配置呢?确实是有的。

Git 一共有三个层级的配置(官方描述):

  • /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果在执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)
  • ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 你可以传递 --global 选项让 Git 读写此文件,这会对你系统上 所有 的仓库生效。
  • 当前使用仓库的 Git 目录中的 config 文件(即 .git/config):针对该仓库。 你可以传递 --local 选项让 Git 强制读写此文件,虽然默认情况下用的就是它。。 (当然,你需要进入某个 Git 仓库中才能让该选项生效。)

每一个级别会覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。

从上述描述来看,一共为三层:system 系统级,global 用户级,local 仓库级。同时,其规则与计算机领域大多数配置的读取规则一致(就近原则),意味着,设置仓库级的配置后,用户级以及系统级中冲突的值都会被仓库级的覆盖。那么我们的事情就好办了。

三层配置的已有的信息查看可使用这些命令(仅通过 –配置级别 进行区分):

git config --system --list
git config --global --list
git config --local --list

如果想将某层配置还原可使用这些命令(可通过替换 –配置层级 来进行相关配置层的重置):

仅还原用户名以及邮箱:

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

还原所有:

git config --unset --global credential.helper

多用户的配置则直接使用 仓库级的配置进行设置即可,例如:

对于项目A,用户名为 User1

git config --local user.name "User1"
git config --local user.email User1@email.com

对于项目B,用户名为 User2

git config --local user.name "User2"
git config --local user.email User2@email.com 

然后接下来就可以对相关项目进行修改,提交时将默认使用仓库级的配置进行提交,这样就避免了用户之间的交叉操作。

以上。

参考:1.6 起步 – 初次运行 Git 前的配置


本站由以下主机服务商提供服务支持:

0条评论

发表评论