设置:

设置:

我正在研究如何为我的 latex 文档设置版本控制。我想知道人们对此的典型设置。他们是在顶部文件夹还是单个项目中设置它。我将使用 GIT。具体来说,您是否可以启动一个位于单独存储库(但与原始 GIT 位于同一文件夹)中的新项目,然后轻松将其合并到主分支中。这也很有用。

答案1

我的设置是每个文档(文章/论文/书籍/演示文稿)一个存储库。相对于“一个存储库统治所有存储库”,其优点如下:

  • 您可以与同事共享和同步各个存储库。如果他们中的一些人更喜欢其他版本控制软件,没问题,您可以使用他们喜欢的任何版本控制软件。

  • 您可以检查以前的版本并以“分离头”模式工作,而不会搞乱主目录的其余部分。

  • 您可以使用git archive

  • 你可以以有意义的方式使用标签

缺点:

  • 您需要一种方法来处理项目间共享的文件(如果有的话)。Git 子项目很乱。

我想不出更多缺点了 --- 对我来说,每个项目一个仓库才是git应该使用的方式。“统一仓库”的支持者有什么论据?

答案2

通常,每个项目都有一个 git 存储库。这里我需要说明的是,“项目”可能是许多单独编译的单个文件:例如,当我要讲课时,我会在一个单独的文件中保存每周的练习表,我有讲座的课程/教学大纲,我有自己的待办事项,我有用于多种用途的考试和学生名单等。最后,我可能会将讲座的讲义组织在许多不同的文件中。但所有这些都进入一个 git 存储库。现在,我还拥有一个在许多情况下使用的宏集合(一个存储库)和一个 bibtex 集合(另一个 git 存储库)。最后,对于科学论文,我为每篇论文都有一个 git 存储库(同样,在单独的文件中的最终草稿旁边有简短的注释等)。这允许与你的合著者共享这样的存储库,他们可能根本不对你 5 年前的讲座讲义感兴趣。

因此,我认为以有意义的方式将内容组织在单独的存储库中是件好事,不一定是每个文件都有一个存储库,而是每个逻辑上属于同一类的文件“项目”。一旦你经常这样做,使用某些模板、Makefile 和 shell 脚本等来自动化操作是个好主意。

答案3

我每个项目都有一个。通常还包括一些创建图形和表格的 Marlab 文件。

我还有一个单独的 matlab 工具箱项目,用于多个项目。我计划对我在 LaTeX 中常用的样式文件和宏也做同样的事 - 虽然还没有开始。

我放弃了这样的主存储库,因为我希望我的项目是“可移植的”。基本上,只需复制一个我在家里有工作存储库的文件夹,或者我可以赠送的文件夹即可。我的主存储库很容易就大到几 GB。还可能包括一些我不想分享的项目内容。

答案4

设置:

带有子文件夹的大型项目文件夹。一个子文件夹是“GWD”=>“Git 工作目录”。这里是所有*.tex文件,将受版本控制。此外,还会有文件.gitignore。没有其他与此项目相关的 git 存储库。如果我搞砸了,我就完蛋了。

使用 git 的一个好处是,你可以使用以下命令在项目的任何早期阶段之间进行比较:latexbatchdiff。我之前写过:将 latexdiff 与 git 结合使用

相关内容