概述
Git hooks 是git非常好用的一个特性,在我自己的项目中,我需要保证我的所有go源文件都能够被正确地格式化,然后才能够被commit。因此,我用了一个很简单的git hook完成这项工作,你可以把这个文件的内容保存到.git/hooks/pre-commit
来实现这个功能。
对我个人而言,这样的工作已经足够,但是我想把这个好主意分享给我的小伙伴们。这篇Stack Overflow 文章给了我一些灵感,我在这里进行一些扩展。
创建你的受控的Hooks文件夹
由于.git
文件夹是不会被git跟踪的,因此我们需要在根目录创建一个.githooks
来存储我们的hooks脚本。你可以选择任意的文件夹名,只要能够work即可。记住所有的hooks需要可执行权限,所以需要保证所有的hook脚本都执行过chmod +x
命令,否则,脚本将不会工作。
选择你的分享策略
如果你的 Git版本为Version 2.9或者更高,你可以简单地通过设置core.hooksPath
配置项来实现你的功能:
$ git config core.hooksPath .githooks
如果你在使用低版本的Git,你可以通过符号链接实现上述功能,你可以通过这个命令实现git的重定向:
$ find .git/hooks -type l -exec rm {} ; && find .githooks -type f -exec ln -sf ../../{} .git/hooks/ ;
共享你的脚本
虽然hooks通常是本地脚本,但是在共享的时候,通常需要确保团队的成员都能够将hooks放置在合适的位置,并且能够正常地工作。特别是在他们每次做了新的checkout的时候,因此我把我的脚本放在了Makefile
中,在每次我的项目初始化的时候自动去执行,下面是我的两个任务:
init:
git config core.hooksPath .githooks
earlier version:
init:
find .git/hooks -type l -exec rm {} ;
find .githooks -type f -exec ln -sf ../../{} .git/hooks/ ;
最后
以上就是粗暴月饼为你收集整理的 与你的团队分享git hooks的两种方式的全部内容,希望文章能够帮你解决 与你的团队分享git hooks的两种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复