正如问题所说,我只是想知道在 git 存储库的每次提交中跟踪 LaTeX 项目的辅助文件的利弊。
答案1
您所谈论的文件(.log
、.aux
.、.bbl
.、、、.blg
等.toc
)是由 LaTeX(或 BibTeX 或任何其他辅助程序)“动态”创建的。它们通常依赖于源.tex
文件。由于这些文件中没有唯一的信息(即无法从源文件中恢复的信息.tex
)并且您永远不会手动编辑它们,因此对它们进行版本控制没有任何好处。充其量,您提交的文件可以从另一个进程逐字节复制,这是多余的。最坏的情况是,正如 mbork 指出的那样,如果您提交文件而不进行编译.tex
(并生成新的辅助文件),那么您提交的是过时的信息。
相反,我会将这些文件排除在版本控制之外。在 git 中,您可以通过.gitignore
在存储库目录中创建一个文件 ( .git
) 来执行此操作。在该文件中输入要忽略的辅助文件的模式。以下是我通常使用的列表:
# TeX, snapshot, and latexmk generated files
*.aux
*.dep
*.fdb_latexmk
*.log
*.out
*.synctex.gz
*.log
*.fls
(Habi 提供了一个很好的链接.gitignore
github 上的扩展文件)您也可以将这些模式放在存储库中的 git 目录中.git/info/exclude
。我有一个 git 模板,里面有这样一个exclude
文件,然后当我想 gitify 一个新文档时,我会运行
$ git init --template=/path/to/template
我就完成了。
您也可以全局执行此操作。请参阅忽略文件来自 GitHub 帮助。
答案2
跟踪的一个优点.bbl
是您latexdiff
还可以跟踪书目列表的变化。(latexdiff
附带vc
支持)