使用预提交钩子来清理代码

Cra*_*ner 4 git githooks

在预提交挂钩期间从源文件中擦除开发代码是否是一种好的形式?

例如,我有调用xdebug_break()的代码,我想在将代码提交到存储库之前从任何拥有它的文件中删除对该函数的调用.在调用它之前我宁愿不检查函数,因为我是唯一一个想要那个函数调用的函数.

Bri*_*ell 13

预提交钩子只应用于检查提交,而不是用于修改提交.因此,您可以使用它来检查提交中是否包含不需要的代码,如果不这样做则中止提交,但不应以任何方式使用它来修改提交.

可以使用filter属性来运行程序,以便在提交源之前"清理"它们; 但我会建议不要这样做.删除源代码行可以更改程序的行为.您不应该提交任何未经过测试的工作.

  • @Fergal首先,预提交钩子不能"强制"任何东西; 它在本地运行,在您的工作存储库中,用户可以根据需要启用或禁用它.此外,您不希望您的提交变得那么慢.在提交之前,人们已经完成了(至少一些)对其代码的测试; 让他们等待所有的单元测试再次运行只是因为他们的承诺完成将是令人难以置信的令人沮丧.适用于大型项目的良好测试套件可能需要数小时才能运行; 这应该发生在提交和推送之后的专用构建机器上,而不是在开发人员的机器上 (3认同)