Git:在提交/推送之前运行过滤器?

时间:2010-04-14 15:34:15

标签: git testing coding-style

有没有办法在提交之前通过过滤器运行更改的文件?我希望确保文件遵循项目的编码标准。

我还想在提交/推送实际发生之前编译并运行一些测试,所以我知道repo中的所有内容实际上都有效。

2 个答案:

答案 0 :(得分:3)

预提交挂钩。阅读git hooks。例如,Git Book有example如何编写Ruby脚本来运行RSpec测试。

您只需将可执行文件保存为.git / hooks / pre-commit - 使用hashbang指定语言。它只是一个普通的shell脚本,虽然你可以使用任何脚本语言,只要它在有问题时返回1,如果没有则返回0。

答案 1 :(得分:3)

对于过滤器部分,我建议使用smudge/clear driver,其中'clear'脚本包含您需要的所有格式或检查(在提交时执行)

filter driver

您只能为某些类型的文件声明此git attribute filter driver,仅适用于您的回购中的某些目录。