在`--no-verify`的情况下如何更新提交消息?

问题描述 投票:0回答:2

我们已经为git存储库编写了预提交钩子。但是,开发人员可以使用--no-verify绕过预提交的钩子,无论如何都可以提交。我想知道,当--no-verify标志存在时git是否提供某种方式来更新提交消息,以便在这种提交消息中添加Not Hook Verified:吗?或可以为此情况添加的其他一些检查?

git githooks
2个回答
0
投票

除非您愿意分叉git,修改--no-verify的行为,分发修改过的git二进制文件,并以某种方式说服所有人使用它不可能阻止用户执行git commit --no-verify并在提交消息中添加一些任意单词。考虑设置一个持续集成服务器,该服务器将始终收到拉/合并请求时运行检查,因此无法在服务器上运行时被绕过。


0
投票

如果您的目标是更新提交消息本身,例如自动包括JIRA ID等,则可以在启动编辑器之前使用prepare-commit-msg钩子修改提交消息。开发人员当然可以修改该消息,但我个人发现它对上述情况很有帮助。

如果您的目标是淘汰使用git commit --no-verify的开发人员,那么,没有办法做到这一点。如果您的目标是实施代码策略,那么该更改要么属于pre-receive挂钩,要么属于您的CI系统。您不能相信任何东西都可以在开发者系统上运行,因为开发者可以对其进行修改或删除。

此外,实现pre-commit钩子来测试或检查项目是一个问题,因为它使人们进行小小的修正提交(然后他们挤在一起)变得更加困难和不便。例如,当我有一个小的逻辑块可以工作时,我通常会提交WIP更改,然后如果我遇到问题,可以回滚。当我准备提交时,我会将它们压在一起进行逻辑更改。我完全知道,这样的提交将不符合提交消息标准或通过所有测试,但是它们对于临时目的非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.