用Git撰写论文

nix*_*win 58 git version-control

我打算用Git用Latex编写我的论文.由于Git专为软件开发而设计,我的要求是否可行?如果它对我来说是一个不错的选择,那么Git中有哪些特殊和独特的功能是写论文的理想选择.另外,我想知道在进入Git工作流程之前我应该​​采取什么预防措施.我是Git的初学者,所以在我进入它之前应该是我的起点.

gpo*_*poo 43

有一些技术考虑因素和最佳实践.我要去第二个,特别是写论文和/或论文.对于技术问题,您可以查看任何git教程.

  1. 定义论文的目录结构.您可以稍后更改它,并使用git跟踪更改.拥有良好的结构将使您的生活更轻松.

  2. 使用多个文件(在LaTeX中使用include和/或input).您可以按章节或章节拆分它们.这将更容易跟踪涉及论文特定部分的变更(例如git log content/introduction.tex).

  3. 仅跟踪您要触摸的文件,而不是自动生成的文件.创建一个适当的.gitignore文件将帮助你很多(乳胶生成大量工作文件).

  4. 在程序中,执行微提交,即:每个想法/功能/修复/活动一次提交.

  5. 每次提交时,编写有意义的消息(高级别),解释您在每次更改时要实现的目标.一周后你可能不记得你想要完成的事情了.

  6. 跟踪每个活动/想法/修复[见(4)和(5)]可能非常有助于知道你做了多少(使用git log).您可以根据您的主管编写预先报告git log.更重要的是,您可以与您的主管共享存储库(使用Web界面),他们可以检查您在论文中所做的任何事情.对于下一次会议,他们会知道会发生什么(这将取决于您的主管对RSS的喜爱程度).

  7. 使用git将有助于让你保持良好的心情(有时你会觉得你没有做太多,但跟踪每一个变化将帮助你保持透视).

  8. 对于您发送的每个进度报告,创建一个标记.对于下一个报告,您可以签出两个版本并应用latexdiff.它可用于跟踪您提交以进行修订的版本之间的更改.这也可以帮助您检查您是否收到了上次报告收到的反馈.

最后但并非最不重要,我建议你阅读" 一个成功的Git分支模型 ".这是关于git工作流的一篇非常简短的文章.在撰写论文时,您可以应用相同的概念.例如,如果您正在编写实验,则可以为其创建分支,并在" 准备好 "后合并它.如果您以后必须重新访问它,将更容易看到所涉及的更改和原因.


Mar*_*air 18

当我写博士论文时,¹我使用git来管理文档及其所有数据,我很高兴我这样做,尤其是因为它可以很容易地编写一个脚本来描绘你的进度.继续;)我发现的主要优势是:

  • 由于git是一个分布式版本控制系统,因此很容易在多台机器上工作.如果您需要台式机上的笔记本电脑的最新版本,您可以pull直接从笔记本电脑上工作.当你离开时,你去你的笔记本电脑,从桌面机拉.
  • 如果您在多台计算机上工作,您实际上有一份最近的工作备份(包括其完整的历史记录),如果您想创建更多备份,您可以在其他位置推送到新的裸存储库(如VonC的答案所指出).
  • 您可以对文档进行大量更改,因为您知道以前的版本是安全存储的,如果您想要检索旧版本,那么这很容易做到.
  • 能够在您离线时提交到您的存储库是非常有用的,特别是因为没有互联网访问使得编写更容易;)我还保留了我在同一存储库中引用的所有论文的PDF,以使其更容易工作离线,虽然这大大夸大了存储库,所以有些人可能会建议不要这样做.

我给出的主要建议是:

  • 经常提交,并始终确保git status通过添加所需文件或列出它们来保持输出为空.gitignore.您不希望冒重要文件未跟踪.
  • 永远不要使用历史重写命令(例如git rebase),只是为了安全,并且永远不要使用像git reset --hard和那样的git危险命令git checkout -f.没有人会看到你的完整存储库,所以你不关心历史记录是什么 - 更重要的是你不要做任何可能会丢失(或使其更难以检索)你的工作的事情.
  • 当您查看版本之间的差异时,请使用--color-words选项git diff.否则,您的差异将基于行,如果您在LaTeX中重新格式化一个段落,将很难看到真正的变化是什么 - git diff --color-words忽略换行符,只显示红色的旧单词和新单词在绿色.

¹...使用LyX而不是直接使用LaTeX,但问题基本相同.