git - 我们可能需要 pre-commit 和 pre-push 钩子来整理我们的代码
问题描述
假设我们的项目中有 linter。我有一个预提交钩子,它将对我的项目进行 lint,如果 lint 通过且没有错误,它将提交。我想设置一个预推送挂钩来在推送时对我的项目进行 lint。但是我看不出在推送时这样做有什么意义,因为代码已经在提交时被 linted。那么,任何人都可以指出一个场景,即在已经有一个预提交链接的情况下需要预推送 lint 吗?
解决方案
如果您使用的是pre-commit
钩子,那么也不需要pre-push
钩子。两者都将涵盖正常使用中的同一组提交。两者都可以用 绕过--no-verify
,因此都不适合作为访问控制。尽管如此,对于需要使用pre-commit
钩子的开发人员来说,钩子仍然是一个有用的工具。
如果你想在你的代码库上强制执行 linting,你应该在你的 CI 系统中使用一个用户不能修改的检查。这为发现它有用的用户留下了pre-commit
钩子,而更高级的用户可能会创建许多他们不想 lint 的一次性提交,可以跳过它并依赖 CI。
推荐阅读
- google-apps-script - 防止重复的数据从 Google 表单填充到 Google 电子表格中
- json - 为什么在swift中从json中获取collectionView图像中的nil
- javascript - 鼠标事件如何在 chrome 中工作?(d3-V4)
- firebase - FirebaseAuth.signInWithCredential 导致我的 Flutter 应用程序在我调用它时崩溃
- r - 在 R 中为数据帧赋值 - 用于循环速度
- asp.net-mvc - 如何在 Rider 中启用视图热重载?
- pandas - 在没有相同列的情况下加入多个数据框
- go - 取int平方根的最佳方法是什么?
- pyinstaller - 使用 PSEXEC 在远程计算机上运行 .exe
- apache-kafka - 如何在命令行中使用具有人类可读时间戳的 Kafka 消息?