git - 如何在本地系统中修改预提交 Hook

标签 git pre-commit-hook pre-commit pre-commit.com

在所有存储库中添加 .pre-commit-config.yaml 文件。此预提交 Hook 负责验证提交消息,如果不符合标准,则会生成错误。

现在,当有人同时提交到本地系统时,应该触发 Hook 。为此,需要安装:

pre-commit install --hook-type commit-msg
pre-commit install

如果上述命令未在任何开发人员的本地系统上执行,则预提交将不会执行。当然,可以为开发人员提供安装预提交相关内容的指南,但有可能会错过它。

那么有什么方法可以强制自动安装预提交相关的东西,或者如果开发人员尚未安装,那么可能会出现错误,请在继续之前在本地计算机上安装预提交 Hook ,如果没有此提交应该不工作?

最佳答案

对于任何 client-side Git hook ,你有同样的部署问题:你需要部署到所有客户端:

  • 钩子(Hook)本身(此处通过一系列命令安装)
  • git执行 git 之前的包装器,检查钩子(Hook)是否已安装,如果没有(并且如果在 Git 存储库内执行)则安装它。

考虑到我的 Git 用户都来自同一家公司,我通常使用第二个选项:他们使用我的安装程序来安装 Git。

这不适用于开源项目,因为开源项目的贡献者并非来自同一组织,而是分散在全局各地。

如果您有权访问远程存储库,请添加 (server-side) pre-receive hook to validate the commit message建议:您可以拒绝推送,然后添加开发人员安装预提交 Hook 的说明。

关于git - 如何在本地系统中修改预提交 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74002741/

相关文章:

python - 连接到 mercurial pretxncommit。并且不能导入请求模块?

pre-commit - Husky 需要为每个新分支生成可执行文件

git - 如何撤消 "git add"保留先前暂存的版本? (该指数有历史吗?)

git - 如何在 git reset 后恢复更改

git - 关闭编辑器窗口后如何修复 git 提交错误?

svn - Subversion 标记和安全性

c++ - 预提交 Hook 验证 C++ 代码

mercurial - 如何与所有其他开发人员共享 mercurial 中的 commit-hook?

git - 在 Github 上删除 <user> committed with <user>

git - 如何按上次访问日期的顺序列出本地 git 分支