美文网首页移动开发技术前沿程序员@IT·互联网
利用 Git-hook 自动配置不同仓库的用户信息

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

作者: halohily | 来源:发表于2018-03-26 23:24 被阅读104次

本文是我首发在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一个新的仓库时,根据仓库来源域名的不同,自动配置不同的用户信息

  • 首先,在命令行使用该命令建立一个新的文件夹:mkdir -p ~/.git-templates/hooks

  • 然后配置git,让git知道这个文件夹是你的模板文件夹:git config --global init.templatedir ~/.git-templates

  • 接下来,在这个文件夹中新建钩子文件:vi ~/.git-templates/hooks/post-checkout

    钩子文件的内容较长,可在文末附带的链接中查看复制即可,完成之后赋予这个文件可执行权限:chmod +x ~/.git-templates/hooks/post-checkout

  • 最后,新建一个文件:vi ~/.git-clone-init

    最后一个文件是唯一一个内容需要自己配置的文件,也是整个过程的关键,内容格式如图2,意为对应不同域名下的仓库,自动配置不同的user.nameuser.email

图2

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

参考:

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

相关文章

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

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

  • 重学Git(2)-操作命令清单备忘

    仓库配置 (1)显示当前的Git配置 (2)编辑Git配置文 (3)配置用户信息,用于提交代码标记用户信息 仓库初...

  • Git常用命令大全,迅速提升你的Git水平

    初始化本地git仓库(创建新仓库) 配置用户名 配置邮件 git status等命令自动着色 clone远程仓库 ...

  • git安装后的配置(Windows)

    1. 配置用户信息 必须先配置用户信息,配置用户信息之后git仓库才嫩知道是谁提交的代码,配置方式如下: 解释一下...

  • git命令总结

    运行前配置 配置用户信息 配置了email后github的仓库才会将提交记录统计到用户的贡献上。 查看配置信息 初...

  • Git 常用操作

    初始化本地git仓库(创建新仓库) 配置用户名 配置邮件 git status等命令自动着色 remove pr...

  • 记录几个有用的git命令

    查看提交的版本历史 版本回退 查看远程仓库信息 查看当前用户(global)配置 查看本地仓库配置 重置远程仓库链...

  • SVN的基本使用(命令行)

    搭建SVN服务器 配置仓库 配置目录配置仓库-1 配置用户 在本地创建存放文件的文件夹 利用命令行工具使用SVN ...

  • Git指令小记

    用户信息配置 配置查看 查看某一配置 查看所有指令 初始化仓库 提交一个已经有文件的仓库 克隆远程仓库 查看状态 ...

  • Git 常用命令记录

    用户信息配置 检查配置信息 检查 Git 的某一项配置 在现有目录中初始化本地仓库 克隆现有的远程仓库 克隆现有的...

网友评论

本文标题:利用 Git-hook 自动配置不同仓库的用户信息

本文链接:https://www.haomeiwen.com/subject/epidcftx.html