2016-12-13 21 views
5

私は個人的な文書を保管するgit repoを持っています。これらの文書のいくつかはLaTeXファイルであり、PDFのものもあります。私はもちろん彼らが私の書類レポにいて欲しい。条件付きGitignore

しかし、私はORG-モードドキュメント(*.org)を作成するときに、私は多くの場合、組織モードの文書がα呼び出された場合、これらのファイルが作成され、その結果、それを構築:

  • α.tex
  • α.pdf
  • オート/α.el

私は彼らが私はソースコードを持っているのファイルを生成しているとして、それらを追跡する必要はありませんが、私は単純にすべてのを無視することはできませんであり、すべて*.pdfファイルでさえありません。

.gitignoreは、その名前αは、任意の文字列のための変数であることとα.orgというファイルがあるかどうかα.texα.pdfあるすべてのファイルを無視するように言われることができますか?

+0

これらのファイルを無視する代わりに、単純に削除する方が簡単かもしれません。http://emacs.stackexchange.com/questions/23982/cleanup-org-mode-export-intermediary-file – Jules

+2

ビルドあなたのgitignoreファイルで無視されるフォルダ内のファイル。 –

+0

@Jules動作しません。このメソッドは '* .tex'ファイルを取り除き、' * .pdf'ファイルを取り除くことができますが、後者を使いたいと思います。さらに、このメソッドは '.el'ファイルを削除することができません。おそらく、それは別のディレクトリにあるからです。私はEmacの側でどのように解決できるかを見ることができます:特定の名前のディレクトリにファイルをビルドすることができたならば(それはすべてのファイルに対して同じディレクトリであるかどうかは関係ありません。 '* .org'ファイルの場所は、特定の名前しか持たない)、それは問題を解決するだろう。 –

答えて

3

これはできません。.gitignoreは非常に単純なファイルであり、条件付きルールは許可されません。

しかし、一般的には、すべての中間ファイルをいくつかのビルドディレクトリに生成するようにビルドシステムを準備することをお勧めします。多くの場合、buildまたはtargetが使用されます。そして、あなたは、単に.gitignoreに入れることができます:

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

特定のラテックスのための構文について、そしてもちろんの(確かそんなにない:

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

をコンパイルは、Makefileにして行われた場合、ルールは次のように見ることができます*.tex*.orgから生成するコマンド)