git config 多用户配置 提交时 仓库显示正确的用户信息
在每一次git提交的时候,提交的记录里都会带上用户名及邮箱信息,这个信息不是在github或者gitlab上设置的,而是设置于我们的电脑中。
这在所有平台都使用同一套用户信息的时候是可以正常使用的,但有时我们需要在不同平台,甚至不同的项目中使用不同的用户信息(比如在公司gitlab使用真实姓名和公司邮箱,在github上使用网名和个人邮箱),那就需要不同的设置方案了。
下面分别介绍全局配置、按项目配置和按文件目录配置三种git配置方法。
全局配置
这是每次安装git后都会提示我们设置的,设置内容存于 ~/.gitconfig 文件中,格式如下:
[user] name = youName email = youEmail@example.com
当项目无特殊配置时,就会取这个文件中的设置为提交信息。
也可以命令来查询、修改全局配置:
git config --global user.name // 查询全局用户名 git config --global user.name youName // 修改全局用户名 git config --global user.email // 查询全局邮箱 git config --global user.email youEmail@example.com // 修改全局邮箱
项目配置
在每个git项目下,可以针对这个项目进行单独设置,这部分设置存于项目根目录的 .ssh/config 文件中。
当有项目设置时,取项目设置的内容,没有时才取全局配置。
也可以命令来查询、修改项目配置, 其实就是全局配置的指令去掉--global而已:
git config user.name // 查询项目用户名 git config user.name youName // 修改项目用户名 git config user.email // 查询项目邮箱 git config user.email youEmail@example.com // 修改项目邮箱
按文件夹配置(多用户配置推荐)
用项目配置的方法虽然可以实现不同项目配置不同信息,但每个项目都配置一遍就太麻烦了,而且会经常出现漏配的情况,有把公司信息暴露到公共空间中风险。
使用 git 的 Conditional Includes 可以针对文件夹来配置,配置方法如下:
在 ~/.gitconfig 添加如下代码:
## 如果是存放私人项目的文件夹,则采用另外的配置 [includeIf "gitdir:path/to/you/dir/"] path = ~/.gitconfig_self
gitdir:后面设置的是你想设置的文件夹目录,使用的是 glob 匹配模式,记得要以 / 结尾,否则不会生效(以 / 结尾,**会被自动添加上,比如 you/dir/ 会变成 you/dir/**,这样才能生效到所有子文件夹)。
path:是新配置的文件路径,我这里和全局配置放在同个目录下,方便查找。
以上三种配置的优先级为:项目配置 > 文件夹配置 > 全局配置
多用户配置样例
如果有多个不同的文件夹需要设置,只需要继续添加配置即可,最终 ~/.gitconfig 中的配置会如下:
## 全局配置(默认配置) [user] name = youName email = youEmail@example.com ## 私人项目 [includeIf "gitdir:path/to/you/dir/"] path = ~/.gitconfig_self ## 工作项目 [includeIf "gitdir:path/to/work/dir/"] path = ~/.gitconfig_work
共 0 条评论