对于大多数人来说,都有两个或者多个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
然后接下来就可以对相关项目进行修改,提交时将默认使用仓库级的配置进行提交,这样就避免了用户之间的交叉操作。
以上。
本站由以下主机服务商提供服务支持:
0条评论