Git智能配置:根据项目目录自动切换用户名和邮箱,守护个人信息安全

使用场景

大部分开发人员常常需要在个人和公司的电脑之间切换使用Git。在公司,他们可能使用内部搭建的GitLab,而在业余时间,他们可能参与开源项目。然而,他们不希望在这些开源项目中不小心泄露公司的内部邮箱或个人敏感信息。

一种常见但稍显繁琐的方法是,每次拉取到项目时,都手动设置git config user.namegit config user.email,但这种方法容易忘记,可能会带来不必要的麻烦。

因此,一个更理想的需求是,能够自动检测和区分当前操作的是公司项目还是开源项目,并据此自动使用相应的用户名和邮箱设置。这样一来,不仅提高了工作效率,还能有效避免敏感信息的泄露。

解决办法

在Git的文档中,找到了 includeIf 和 gitdir 这两个选项。通过在原配置文件中定义一个 [user] 部分,并利用 includeIf 的条件判断,当条件满足时,Git 会加载 path 路径下指定的 [user] 配置,从而覆盖原有的 [user] 设置。这种方法允许我们根据不同的项目或目录自动切换Git的用户名和邮箱,实现了灵活的配置管理。

官方文档:https://git-scm.com/docs/git-config#_includes

配置方法

  1. 查看当前 git 版本号

官方提示此配置适用于 Git v2.13.0 以上版本。

1
git --version
  1. 查找 git 配置文件

任意目录启动 git bash,查找 git 配置文件:

1
git config --show-origin --list

可以找到 file:C:/Users/Administrator/.gitconfig user.name=xxx 的配置信息,直接前往此 C:/Users/Administrator/.gitconfig,用编辑器或者 vim 命令修改此文件。

  1. 添加配置

C:/Users/Administrator/.gitconfig 文件末尾新增以下内容:

1
2
3
4
5
6
# 公司项目存放位置 D:/work/www/
[includeIf "gitdir:D:/work/www/"]
path = .gitconfig-company
# 个人项目存放位置 D:/user/www/
[includeIf "gitdir:D:/user/www/"]
path = .gitconfig-other

更多用法参考 git 官方文档:https://git-scm.com/docs/git-config#_includes

以上配置表示:

D:/work/www/ 的目录下的 git 项目,会使用 C:/Users/Administrator/.gitconfig-company 配置替换默认配置。
D:/user/www/ 的目录下的 git 项目,会使用 C:/Users/Administrator/.gitconfig-other 配置替换默认配置。

如果还有更多其他目录,可以照着上述步骤,继续添加其他目录下的配置。

  1. 新建配置文件

C:/Users/Administrator/ 启动 git bash,执行创建文件命令,或使用其他方式在 C:/Users/Administrator/ 目录新建文件:

1
2
touch .gitconfig-company
touch .gitconfig-other

编辑新增的文件,新增配置如下:

C:/Users/Administrator/.gitconfig-company 文件:

.gitconfig-company
1
2
3
4
# 公司项目仓库配置
[user]
name = company
email = company@company.com

C:/Users/Administrator/.gitconfig-other 文件:

.gitconfig-other
1
2
3
4
# 其他项目仓库配置
[user]
name = other
email = other@other.com
  1. 验证配置

D:/work/www/ 或者 D:/user/www/ 找到一个 git 仓库(注意必须是git仓库目录,否则配置不会生效),启动 git bash,执行以下命令:

1
git config user.email

或者

1
git config user.name

查看配置项是否生效。

注意:必须在配置修改之后重新启动 git bash ,否则配置可能不会生效!

本文由 linx(544819896@qq.com) 创作,采用 CC BY 4.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。本文链接为: https://blog.jijian.link/2024-02-12/git-folder-config/

如果您觉得文章不错,可以点击文章中的广告支持一下!