如何在 git 中测试 pre/post 提交脚本?

How to test pre/post commit scripts in git?

我在 python 中创建了一个 git post-commit 挂钩,并制作了一个可执行文件并将其放入 .git/post-commit。

当我通过 Python 运行 它时它起作用了。现在我想在 git 中本地测试它。我怎样才能做到这一点?我无法通过我的计算机以简单的方式在本地提交 git,对吗?

我应该将挂钩文件复制到我的服务器并进行测试提交来测试它吗?还有别的办法吗?

I can't make a commit to git locally from my computer in an easy way, right?

您需要区分将分支 推送到服务器,这可能需要一些配置,而只是创建 提交,这可以像 运行 命令一样简单:

$ git commit --allow-empty -m "Testing my hook"

pre-commit 和 post-commit 挂钩是 运行 在本地提交时(参见 https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks ),而不是在推送时(推送是将您的本地提交传输到服务器的方式) .

为了测试一个钩子,我会创建一个测试分支,并在那里使用您想要的任何内容进行多次测试提交。挂钩准备好后,您可以删除该分支。在您进行推送之前,一切都是本地的。

此外,如果您从钩子脚本中输出了一些内容,那么在您进行提交时,这些内容将在终端中可见。这对调试很有用。

要在服务器上执行代码,您应该使用 "Server-Side Hooks" (see at the bottom of this page, also documented here)。