在预提交挂钩期间从源文件中擦除开发代码是否是一种好的形式?
例如,我有调用xdebug_break()的代码,我想在将代码提交到存储库之前从任何包含它的文件中删除对该函数的调用。我宁愿在调用它之前不检查函数,因为我是唯一一个想要那个函数调用的人。
答案 0 :(得分:13)
预提交hook应仅用于检查提交,而不是用于修改提交。因此,您可以使用它来检查您的提交中是否包含不需要的代码,如果不这样做则中止提交,但您不应该以任何方式使用它来修改提交。
可以使用filter attribute运行程序在提交源之前“清理”它们;但我会建议不要这样做。删除源代码行可以更改程序的行为。您不应该提交任何未经过测试的工作。
答案 1 :(得分:0)
在提交之前让precommit钩子修改代码是可以的。例如,开发团队可能会使用预先提交挂钩来自动重新格式化任何承诺自动强制执行该团队编码约定的代码。
基于评论,我正在改变我的答案 - svn手册特别建议AGAINST更改提交的内容,因为它可能会搞砸客户端缓存。由于存储库是本地的,Git的工作方式不同,但我猜原理是一样的。
您提到的具体用例;使用预先设定的钩子看起来有点不同寻常。通常,预先挂钩用于更一般的目的。也就是说,如果你是唯一的开发者,你可以自由地使用它。只是不要忘记它就在那里。