有条件的Gitignore

UTF*_*F-8 10 versioning git emacs gitignore org-mode

我有一个git仓库,我存储了我的个人文件.其中一些文档是LaTeX文件,有些甚至是PDF.我当然希望他们在我的文件回购中.

但是当我创建一个org-mode文档(*.org)时,我经常构建它,导致在调用org-mode文档时创建这些文件?:

  • α.tex
  • α.pdf
  • 自动/α.el

我不想跟踪它们,因为它们是生成的文件,我有源代码,但我不能简单地忽略*.tex所有*.pdf文件,甚至不是所有文件.

可以在.gitignore被告知忽略名称为每个文件?.tex或者?.pdf是否有一个名为?.org?是一个变量的任意字符串?

Zby*_*000 5

这是不可能的,它.gitignore是非常简单的文件,并且不允许任何条件规则。

但是,通常最好的方法是准备构建系统,以将所有中间文件生成到某个构建目录中。通常用于buildtarget。然后,您可以简单地输入.gitignore

/target # / specifies the root path
/auto # probably your temporary files...?
Run Code Online (Sandbox Code Playgroud)

如果使用Makefile进行编译,则规则如下所示:

target/%.pdf: target/%.tex
         $(LATEX) -o $@ $<
target/%.tex: %.org
         generate_tex -o $@ $<
Run Code Online (Sandbox Code Playgroud)

(对于乳胶的语法以及对用于*.tex从中生成的特定命令当然不太了解*.org