在 git 存储库中跟踪 aux bbl blg 文件有什么好处吗

在 git 存储库中跟踪 aux bbl blg 文件有什么好处吗

正如问题所说,我只是想知道在 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 提供了一个很好的链接.gitignoregithub 上的扩展文件)您也可以将这些模式放在存储库中的 git 目录中.git/info/exclude。我有一个 git 模板,里面有这样一个exclude文件,然后当我想 gitify 一个新文档时,我会运行

$ git init --template=/path/to/template

我就完成了。

您也可以全局执行此操作。请参阅忽略文件来自 GitHub 帮助。

答案2

跟踪的一个优点.bbl是您latexdiff还可以跟踪书目列表的变化。(latexdiff附带vc支持)

相关内容