移动开发技术前沿程序员@IT·互联网

利用 Git-hook 自动配置不同仓库的用户信息

2018-03-26  本文已影响104人  halohily

本文是我首发在iOS知识小集团队的iOS tip,欢迎关注微博话题#ios知识小集#。我的微博:halohily

问题的起因来自于某天一位同学的问题:“我给一个知名开源项目提交了代码,也被合并了,为什么 contributors 里面没有我?”其实,这多是因为提交代码时本地仓库的user.nameuser.email与GitHub账号不匹配导致,只有提交代码时的用户设置与自己的 GitHub 账号相匹配时,各项数据才会被 GitHub 计入统计。如下图所示,这样的 commit 记录便来自于一个用户设置和我 GitHub 账号不匹配的本地仓库。

图1

如果你不仅使用 GitHub ,还会向公司自建的 GitLab ,以及 oschinacoding.net 等基于 Git 的托管服务商提交代码,那么便会面临这个问题:你需要为不同来源的 Git 仓库一一配置用户名与邮箱信息,来避免上述的不同步情况。然而,手动在每个本地仓库路径下都使用 git config user.namegit config user.email 命令,难免会有忘记的情况,也过于繁琐。所以,我们可以使用Git初始模板、钩子函数的特性,达到在每次clone一个新的仓库时,根据仓库来源域名的不同,自动配置不同的用户信息

图2

整个过程的原理就是我们在执行克隆操作时,git会执行初始模板里的钩子文件,钩子文件根据git-clone-init文件定义的规则,自动配置用户名与邮箱信息。这套流程来自于一个GitHub开源库,目前star还很少,大家可以去支持一下~

参考:

  1. DrVanScott/git-clone-init
  2. 让你的git拥有不同身份
上一篇下一篇

猜你喜欢

热点阅读