Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 提交前自动生成文件_Git_Githooks - Fatal编程技术网

Git 提交前自动生成文件

Git 提交前自动生成文件,git,githooks,Git,Githooks,我有一个带有一些文本文档和幻灯片(libreofficeodt和odp文件)的git存储库。我想自动将它们转换为pdf文件,然后提交文档和pdf文件(这样我的存储库的用户就不必自己构建pdf文件)。 我已经编写了一个简单的makefile,可以自动执行此转换: MAKEPDF=libreoffice --headless --convert-to pdf SOURCES=$(shell find . -name '*.od*') TARGETS=$(subst .odp,.pdf,$(subst

我有一个带有一些文本文档和幻灯片(libreofficeodt和odp文件)的git存储库。我想自动将它们转换为pdf文件,然后提交文档和pdf文件(这样我的存储库的用户就不必自己构建pdf文件)。 我已经编写了一个简单的makefile,可以自动执行此转换:

MAKEPDF=libreoffice --headless --convert-to pdf
SOURCES=$(shell find . -name '*.od*')
TARGETS=$(subst .odp,.pdf,$(subst .odt,.pdf,$(SOURCES)))

all: $(TARGETS)
    #

%.pdf: %.odt
    #
    $(MAKEPDF) $< --outdir $(@D)

%.pdf: %.odp
    #
    $(MAKEPDF) $< --outdir $(@D)
MAKEPDF=libreoffice--headless--convert-to-pdf
SOURCES=$(shell find.-name'*.od*')
TARGETS=$(subst.odp.pdf,$(subst.odt.pdf,$(SOURCES)))
全部:$(目标)
#
%.pdf:%.odt
#
$(MAKEPDF)$<--outdir$(@D)
%.pdf:%.odp
#
$(MAKEPDF)$<--outdir$(@D)
我现在需要的是在我提交新更改时运行这个makefile

我阅读了git钩子,并考虑使用预提交钩子。但是,这个钩子在我添加要提交的文件之后运行,因此不会添加新生成的文件


是否有一种方法可以自动生成所有pdf文件并将其暂存以进行提交?

pre-commit
hook在创建提交之前执行,因此您可以使用
pre-commit
hook来
1)生成文件
,然后
2)git添加这些文件。但是,请注意,普遍接受的指导原则是,您不应该在git中提交生成的文件。例如:@Alderath这很有效,谢谢