在 Windows 11 上。git 版本 2.46.0.windows.1
我正在构建一个应该用于所有存储库的“commit-msg”钩子。我构建了一个 Go 应用程序并将生成的可执行文件复制为%HOME%\.git-templates\hooks\commit-msg.exe
。
我还在%HOME%\.gitconfig
文件顶部编辑并添加了以下内容:
[init]
templatedir = C:\\Users\\<myusername>\\.git-templates
我以独立方式测试了我的应用程序,它运行良好,并且它总是打印至少一行表明它做了什么。
然后我进入我的一个本地存储库并运行git init
,然后我添加了一个虚拟文件,git add
对其执行了,然后git commit -m "test"
。它执行了提交,但没有显示我的钩子的输出。
然后我将钩子可执行文件复制到.git/hooks
存储库的子目录中,并重复相同的提交测试。输出清楚地表明它正在执行我的钩子。
由于某种原因,“全局”钩子没有被使用,但我不知道为什么。