Git工作流与LaTeX文件和多个提交者

时间:2013-11-18 12:53:09

标签: git latex

我已经开始撰写新文章,我决定使用git来跟踪对我的主要Latex文件(以及参考书目.bib文件)所做的更改。我有两位顾问将会也正在对Latex文件进行更改。他们都不知道如何使用git并要求他们学习是不可能的。所以我离开了以下工作流程:

  • 我对文件进行了编辑,并使用git来跟踪更改。
  • Advisor 1进行了一些更改,并通过邮件将文件发回给我。
  • Advisor 2进行了一些其他更改,并通过邮件将文件发回给我。

因此,在一天结束时,我有三个相同LaTeX文件的修改版本,需要跟踪它们的更改,并在某些时候合并到一个文件中。

我是git的新手。你会推荐什么工作流程?

1 个答案:

答案 0 :(得分:4)

这个问题主要是个人意见诱饵,但无论如何这里都是我的。

至少让你的顾问学习git对你来说要容易得多。并发编辑的不方便部分(无论是SCM)是管理和合并冲突的编辑。但如果你让你的顾问远离它,那么所有艰苦的工作都将适合你。

如果失败,您可以在每个分支上跟踪他们的更改。

git branch advisorA advisorB

然后,每当他们向您发送更改时,您都会将其提交给他们的分支并合并到您的分支中:

git checkout advisorA
mv /external/advisorA/updated_file file_in_git
git commit -am'Revision from advisor A'

git checkout master
git merge advisorA

分支分歧过多后,合并会变得越来越痛苦,并且您将需要向您的顾问发送更新的文件。执行此操作时,请务必通过反向合并来跟踪它:

git checkout advisorB
git merge master

git checkout master # don't stay on your advisor's branch!

一般规则是:您的顾问的分支始终包含他们对文件的最新状态。

您将从这种工作流程中获得的历史记录行看起来很混乱,但这是最容易解释的git工作流程。在你对它变得更加舒适之后,你可能希望转向一个rebase工作流程,这会产生更好看的历史记录,代价是增加了搞乱的机会。