我已经开始撰写新文章,我决定使用git
来跟踪对我的主要Latex文件(以及参考书目.bib
文件)所做的更改。我有两位顾问将会也正在对Latex文件进行更改。他们都不知道如何使用git
并要求他们学习是不可能的。所以我离开了以下工作流程:
因此,在一天结束时,我有三个相同LaTeX文件的修改版本,需要跟踪它们的更改,并在某些时候合并到一个文件中。
我是git
的新手。你会推荐什么工作流程?
答案 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工作流程,这会产生更好看的历史记录,代价是增加了搞乱的机会。