首页 > 解决方案 > 我们可能需要 pre-commit 和 pre-push 钩子来整理我们的代码

问题描述

假设我们的项目中有 linter。我有一个预提交钩子,它将对我的项目进行 lint,如果 lint 通过且没有错误,它将提交。我想设置一个预推送挂钩来在推送时对我的项目进行 lint。但是我看不出在推送时这样做有什么意义,因为代码已经在提交时被 linted。那么,任何人都可以指出一个场景,即在已经有一个预提交链接的情况下需要预推送 lint 吗?

标签: gitgithubgitlabgithookspre-commit-hook

解决方案


如果您使用的是pre-commit钩子,那么也不需要pre-push钩子。两者都将涵盖正常使用中的同一组提交。两者都可以用 绕过--no-verify,因此都不适合作为访问控制。尽管如此,对于需要使用pre-commit钩子的开发人员来说,钩子仍然是一个有用的工具。

如果你想在你的代码库上强制执行 linting,你应该在你的 CI 系统中使用一个用户不能修改的检查。这为发现它有用的用户留下了pre-commit钩子,而更高级的用户可能会创建许多他们不想 lint 的一次性提交,可以跳过它并依赖 CI。


推荐阅读