Condicional Gitignore

Tengo un git repo en el que almaceno mis documentos personales. Algunos de estos documentos son files LaTeX y algunos incluso son PDF. Por supuesto, quiero que estén en mi repository de documentos.

Pero cuando creo un documento org-mode ( *.org ), a menudo lo construyo, lo que hace que estos files se creen si el documento org-mode se llama α :

  • α.tex
  • α.pdf
  • auto / α.el

No quiero rastrearlos, ya que son files generados de los cuales tengo el código fuente, pero no puedo simplemente ignorar todos los *.tex y ni siquiera todos los files *.pdf .

¿Se le puede .gitignore a .gitignore que ignore cada file cuyo nombre es α.tex o α.pdf si hay un file llamado α.org con α siendo una variable para una cadena arbitraria?

Esto no es posible. .gitignore es un file bastante simple y no permite ninguna regla condicional.

Sin embargo, generalmente una buena idea es preparar el sistema de compilation para generar todos los files intermedios en algún directory de compilation. A menudo se usa build o target . Entonces, simplemente podría ponerlo en .gitignore :

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

Si la compilation se hace con Makefile, las reglas pueden verse así:

 target/%.pdf: target/%.tex $(LATEX) -o $@ $< target/%.tex: %.org generate_tex -o $@ $< 

(No estoy seguro tanto acerca de la syntax para el látex y, por supuesto, el command específico para generar *.tex desde *.org )