我想知道创建预推钩(在git repo中)的最佳方法是什么,它可以执行以下操作:
答案 0 :(得分:2)
您可以使用Git pre commit hook来执行此操作。我已经设置了预提交钩子来检查调试语句等等。
这样的客户端钩子属于.git / hooks文件夹。但是,由于你无法将.git repo中的任何内容提交到版本控制中,所以你会陷入困境。
您需要做的是保持shell命令检查git仓库中某个文件夹中的正确性,比如顶级tools
目录。
然后“只是”告诉人们通过以下方式安装它:
chmod u+x tools/precommit-checks.sh
ln -s $PWD/tools/precommit-checks.sh .git/hooks/pre-commit
并且,假设每个人都安装它,您可以按照要求进行检查。
可能更好的方法就是抓住这个服务器端:让某种持续集成服务器从你的Github仓库中提取最新的提交并检查代码库。
不,它不会给你你想要的“拒绝推送”功能。
假设你自己主持你的git repo,还有另一个皱纹:我认为服务器上的预接收挂钩会挂起客户端,只要钩子占用。 (这个git push
并等待2分钟,以便他们的控制台再次执行任何操作。
使用CI服务器或其他质量测试进行推送后分析可能更好。