gpt4 book ai didi

git 提交后 Hook 未执行

转载 作者:太空狗 更新时间:2023-10-29 14:47:56 26 4
gpt4 key购买 nike

我正在尝试使用 here 中描述的方法实现一种将 git 提交数据包含到 LaTex 文档中的方法.

钩子(Hook)看起来像这样:

$ 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

当我执行 chmod a+x post-commit 然后执行 ./post-commit 时,文件会正确生成。然而,当我实际提交时,钩子(Hook)并没有被执行。可能是什么问题?

最佳答案

我想问题是您 cd ../.. 以便导航到您的源。

尝试用 pushd ../.. 替换 cd ../..。调用git log后,用popd

恢复目录

除此之外:我怀疑提交后 Hook 是您想要的:如果您成功提交,git.tex 将在之后更改并且你有一个修改过的文件。

pre-commit hook 会是一个更好的选择:在提交之前,hook 被调用,修改 git.tex 然后将它添加到提交。

另一种选择是为您的 git.tex 文件 ( http://git-scm.com/book/en/Customizing-Git-Git-Attributes#Keyword-Expansion ) 使用 smudgeclean 过滤器。每次你要做像发布这样的事情时,只要做一个

git add git.tex

这将调用生成 git.tex 内容的 clean 过滤器。此内容将发送到 repo。 smudge 过滤器将在 check out 文件时运行。它的职责是使文件为空,所以它只是

echo '' > git.tex

关于git 提交后 Hook 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15113042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com