区分工作和业余项目的 gitconfig
一般情况下,我们希望工作相关的代码仓库,使用公司邮箱提交,而其他的业余项目,使用个人邮箱提交。因为邮箱不同,所以 gpg 签名的密钥也不同。
因为我电脑上,业余项目相对工作项目来说比较少,所以之前的做法,是在全局的 ~/.gitconfig
里配置了公司邮箱,而在每个业余项目中,手动配置。这样会比较麻烦,每次从 GitHub 上 fork 了项目修改,都要记得先修改一次 git config。这次换新 MacBook Pro,打算重新重新规划一下。
Git 2.13 开始,支持了在 .gitconfig
中使用 includeIf
根据 .git
目录的路径,来引入不同的配置。
我计划将工作项目放在 ~/code/work
,业余项目(主要托管在 GitHub)则放在 ~/code/github
。
那么在全局的 ~/.gitconfig
里可以这么配置:
[includeIf "gitdir:~/code/work/"]
path = .gitconfig.inc
[includeIf "gitdir:~/code/github/"]
path = ~/code/github/.gitconfig.inc
~/code/work/.gitconfig.inc
的内容是:
[user]
name = Tony
email = tony@office.com
signingKey = A1B1C1D1
~/code/github/.gitconfig.inc
的内容是:
[user]
name = 铁蛋
email = tiedan@qq.com
signingKey = A2B2C2D2