用于研究论文的 Git:与合著者实际有效的方法

忽略规则、章节所有权、提交消息、私人遥控器,以及具有真正 Git、分叉和 AI 检查点的研究工作区如何在不让 Git 成为第二份工作的情况下保持论文可恢复。

研究人员已经使用 Git 来编写代码。论文看起来很像代码:纯文本, 包括,构建垃圾。将手稿放入存储库并不那么奇怪 一旦你尝试过一次就会发出声音。

忽略垃圾

LaTeX 的一个合理的 .gitignore

*.aux
*.log
*.out
*.toc
*.synctex.gz
*.bbl
*.blg
*.fdb_latexmk
*.fls

提交.tex.bib,数字你无法重新生成,并且类文件如果 大学需要它。除非期刊想要,否则跳过提交每个 PDF 存档中的二进制文件。

如果您的编辑器为您启动 Git,请检查构建缓存和 PDF 中间体被忽略。来自 aux 文件的空“噪音”流提交 使日志毫无价值。你停止阅读它,那么历史就无济于事了 当东西坏了的时候你。

自己的文件,而不是行

两个人同段就是合并痛苦。更喜欢章节或章节 所有权。当组足够大以进行审查时使用拉取请求 实际上有帮助。

在一个缓冲区中进行实时多用户输入是一种不同的工具(浏览器 LaTeX 编辑)。 Git 协作更慢、更明确:分支、推送、审查。 当您需要书面记录时,这很有效。当三个人必须输入 今天下午一起抽象,选别的东西。

提交将来您可以阅读的消息

“修东西”三个月后就没用了。 《重写变压器相关工作》 就足够了。两层帮助:

  1. 您指定的里程碑:部分草稿、提交、相机准备就绪。
  2. 安全检查点:频繁快照,这样糟糕的下午就可以逆转。

如果您的编辑器在成功编译后或停止输入后设置检查点, 将这些视为地板,而不是唯一的历史。当出现以下情况时,写一条真实的消息: 部分土地或草稿归共同作者所有。

私人遥控器

未发布的作品属于私有 GitHub 或 GitLab 项目。毕业和 实验室迁移是指人们无法访问随机云编辑器帐户。一个遥控器 你控制的是备份。

有网络时推送。不要等到截止日期前一天晚上才 发现遥控器从未连接过。

本地编译、远程备份

大多数星期循环看起来像这样:离线编辑和编译,当你 有网络。您不需要实时浏览器会话来打字。

您希望从工具中获得什么:

  • 每个项目都已经是一个真正的 Git 存储库(不要忘记 git init
  • 成功编译和空闲编辑后的自动检查点
  • 在同一个应用程序中进行阶段、并排比较、丢弃和一键恢复 编辑器和 PDF
  • GitHub 可选用于遥控器;历史记录已在磁盘上运行
  • 分叉一个具有完整历史记录的整个项目以进行并行实验(有风险 方法重写,备用简历),同时提交副本保持不变
  • AI编辑,如果启用它们,首先检查点并仅通过 批准差异

Oleafly 的构建是 方式:普通文件夹,真正的“.git”,自动检查点,命名文件 已移动,具有可编辑工作树差异的源代码控制面板,之后恢复 确认,可选的 GitHub 发布/推送/拉取(前/后),项目分叉 图书馆里的血统。终端 git log 与应用程序匹配,因为它是 相同的存储库。当你使用人工智能检查点时,它会落在相同的位置 您从中恢复的历史记录。

您可以通过仔细的习惯和单独的 Git 来近似实现这一点 客户。区别在于历史是否是你设定并记住的东西, 或者研究工作区在第一天假设的 SyncTeX 旁边的东西 编译。

Git 无法解决的问题

Git 不会取代只打开 PDF 的 PI 的评论,也不会 决定谁的摘要是正确的。二进制数字仍然合并得很糟糕,所以保留 它们很小,更喜欢可以再生的地块,并尽早就所有权达成一致。

对于拒绝 Git 的合著者,请导出 PDF 或 DOCX 以供审阅,并将“.tex”保留为 真相的来源。参见 只讲 Word 的合著者

最低限度的练习

  1. 每篇论文或论文一个 repo,而不是整个职业生涯的一个大型 repo。
  2. .gitignore 用于第一天构建垃圾。 3.多人编辑时的章节所有权。
  3. 具有可读消息的里程碑提交。 5.在工作之前连接私人远程。
  4. 故意恢复测试一次,因此第一个紧急情况不是第一个 恢复。

如果你坚持这个列表,Git 论文大部分都会消失在 背景。你想要的是在截止日期之前无聊的可靠性,而不是第二个爱好。

所有帖子