2016-12-13 44 views
5

我有我存储我的个人文档的混帐回购协议。其中一些文档是LaTeX文件,有些甚至是PDF文件。我当然希望他们在我的文件回购。条件Gitignore

但是,当我创建的组织模式文件(*.org),我经常构建它,导致这些文件被创建,如果组织模式的文档称为α

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

我不想跟踪他们,因为他们产生这些我的源代码文件,但我不能简单地忽略所有*.tex而不是全部*.pdf文件。

能否在.gitignore被告知忽略其名称是α.texα.pdf如果有一个叫α.orgα是一个任意字符串变量文件中的每个文件?

+0

而不是忽略这些文件,可能会更容易将它们删除:http://emacs.stackexchange.com/questions/23982/cleanup-org-mode-export-intermediary-file – Jules

+2

buil d在gitignore文件中将被忽略的文件夹内的文件。 –

+0

@Jules不起作用。该方法摆脱了'* .tex'文件,可以摆脱'* .pdf'文件,但我想使用后者。此外,该方法不能删除'* .el'文件,可能是因为它位于不同的目录中。我可以看到EMAC的一侧的解决方案如何是可能的,但如果有可能的文件建立与特定名称的目录(不要紧,无论它是对所有文件没有磨砂其位置或不管它是在同一目录* .org'文件的位置,它只需要一个特定的名称),这将解决问题。 –

回答

3

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

然而,总体上是好的想法是准备构建系统产生的所有中间文件到一些build目录。通常使用buildtarget。然后,你可以简单地说成.gitignore

/target #/specifies the root path 
/auto # probably your temporary files...? 

如果编译与Makefile文件完成后,规则是这样的:

target/%.pdf: target/%.tex 
     $(LATEX) -o [email protected] $< 
target/%.tex: %.org 
     generate_tex -o [email protected] $< 

(不知道这么多关于语法乳胶,当然具体的生成*.tex的命令从*.org