使用这个技巧,再也不会搞乱 Git 用户信息了


在使用 GitHub 的时候,经常在公司帐户跟个人帐户之间切换,难免会造成这样的困扰:个人项目中的代码不小心用公司帐户提交了。

Commit with wrong git user

等到发现的时候,才发现已经来不及修改了——代码已经被推送到了远程仓库,强行修改历史会带来很多冲突。

经过一番寻找,发现了这个答案,原来 Git 2.13 引入了一项新功能“Conditional Includes”,可以实现对不同路径下的仓库引用不同 gitconfig 的功能。

我习惯把公司项目放在 ~/projects/company 目录下,个人项目随缘摆放。所以我给 ~/.gitconfig 添加了如下配置:

[includeIf "gitdir:company/**"]
 path = ~/.gitconfig.company
  • gitdir: 表示按照 .git 文件夹的路径来匹配 gitconfig
  • company/** 是一个 glob 表达式,在 includeIf 中会自动展开为 **/company/**/.git,用来匹配 /any/path/to/company/any/project/.git
  • path 则是指要引用的 gitconfig 的路径,被引用的文件内容会覆盖 ~/.gitconfig 的配置,从而拥有更高的优先级。

接着,只需要在 ~/.gitconfig.company 添加公司帐户的相关信息就好了:

[user]  
 name = your-name
 email = your-email

掌握了这个小技巧,再也不会用错误的帐户提交正确的代码了。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

You can use markdown syntax in comment