git提交后钩子未执行
我正在尝试实现一种方法,使用所描述的方法将git提交后钩子未执行,git,bash,githooks,Git,Bash,Githooks,我正在尝试实现一种方法,使用所描述的方法将gitcommit数据包含到一个LaTex文档中 钩子看起来像这样: $ cat post-commit #!/bin/sh cd ../.. git log -1 --format="format:\ \\gdef\\GITAbrHash{%h}\ \\gdef\\GITHash{%H}\ \\gdef\\GITAuthorDate{%ad}\
git
commit数据包含到一个LaTex文档中
钩子看起来像这样:
$ cat post-commit
#!/bin/sh
cd ../..
git log -1 --format="format:\
\\gdef\\GITAbrHash{%h}\
\\gdef\\GITHash{%H}\
\\gdef\\GITAuthorDate{%ad}\
\\gdef\\GITAuthorName{%an}" >> git.tex
当我执行
chmoda+x post-commit
然后执行/post-commit
时,会适当地生成文件。但是,当我实际进行提交时,不会执行钩子。有什么问题吗?我想问题在于你是cd../.
为了找到你的来源
尝试将cd../.
替换为pushd../.
。调用git log
后,使用popd
除此之外:我怀疑提交后钩子是否是您想要的:如果您成功提交,
git.tex
将在之后更改,并且您有一个修改过的文件
pre-commit hook是一个更好的选择:在提交之前,调用hook,修改git.tex
,然后将其添加到提交中
另一个选择是为您的git.tex
文件()设置一个污迹和干净的过滤器。每次你要做一些事情,比如发布,就做一个
git add git.tex
这将调用生成git.tex
内容的干净过滤器。该内容将发送至回购协议。文件签出时将运行污迹过滤器。它的职责是将文件清空,所以它只是
echo '' > git.tex
问题是我不需要做
cd../.
,因为代码无论如何都是在存储库的根目录中执行的。另一个错误是>git.tex
,当然应该是>git.tex
非常感谢你的回答,但不是这样;查看我的编辑。您的编辑最好是对您自己的问题的回答,而不是对您的问题的编辑。