git + LaTeX工作流程

时间:2011-05-31 14:03:57

标签: git latex git-workflow

我在LaTeX写了一篇很长的文档。我有自己的工作电脑和笔记本电脑,我都在工作。我需要保持两台计算机之间的所有文件同步,并且还希望保留修订历史记录。我选择git作为我的DVCS,我在我的服务器上托管我的存储库。我也使用Kile + Okular进行编辑。 Kile没有集成的git插件。我也没有在这篇文章中与任何人合作。我也在考虑在codaset上放置另一个私有存储库,如果由于某种原因我的服务器无法访问。

在这种情况下,推荐的工作流程是什么?如何在这个工作方案中安装分支?有没有办法比较同一个文件的两个版本?怎么用藏匿处?

5 个答案:

答案 0 :(得分:371)

答案 1 :(得分:11)

我也有类似的工作流程。即使一个分支正在处理,我发现为不同的工作状态分别设立分支是有益的。例如,假设向您的顾问发送一份好的草稿草稿。然后,你得到一个疯狂的想法!你想开始改变一些核心概念,重新修改一些主要部分等等。所以你分支并开始工作。您的主分支始终处于“可释放”状态(或者在那个时刻尽可能接近)。因此,虽然你的另一个分支是疯狂的并且有一些重大的变化,如果另一个发布者希望看到你有什么,或者你是一个学生提交到会议,主分支总是可以发布,准备好(或准备展示你的顾问)。如果你的博士生顾问想在早上第一件事看到草稿,是的,你可以存储/暂存/提交当前的更改,使用标签或搜索日志,但为什么不保留单独的分支?!

让我们说你的主分支机构具有“可释放”的工作状态。您现在想要将其提交给多个同行评审的期刊,每个期刊对相同的内容都有不同的格式要求,并且您期望他们回来时会有几个不同的小批评,关于如何编辑论文以适合读者等。您可以轻松地为每个日记创建分支,进行日记帐特定更改,提交,并在收到反馈时在每个单独的分支上进行更改。

我还使用Dropbox和git创建了上面描述的系统。您可以在Dropbox文件夹中创建一个简单的存储库。然后,您可以从任一计算机推/拉到您的保管箱,以保持最新状态。该系统通常仅在协作者数量较少时才有效,因为如果人们试图同时推送到Dropbox仓库,则可能会出现损坏。

从技术上讲,您也可以将一个存储库保留在Dropbox文件夹中,并从那里完成所有工作。然而,我会劝阻这一点,因为人们已经提到dropbox在同步不断变化的文件(gits内部文件)时遇到一些麻烦。

答案 2 :(得分:7)

我尝试将其作为bash函数实现,我已将其包含在我的~/.bashrc中,以使其始终可用。

function git-latexdiff {    
    if [[ $# != 2 ]];    
    then      
        printf "\tusage: git-latexdiff <file> <back-revision>  \n";    
    elif [[ $2 -lt 0 ]];     
    then     
        printf "\t<Back-revision> must be positive\n";   
    else      
        dire=$(dirname $PWD/$1);      
        based=$(git rev-parse --show-toplevel);      
        git show HEAD~$2:$(echo $dire| sed 's!'$(echo $based)'/!!')/$1 > $1_diff.tmp;      
        latexdiff $1 $1_diff.tmp > $1_diff.tex;      
        pdflatex $1_diff.tex;     
        okular $1_diff.pdf;      
        rm $1_diff*;   
    fi; 
}

请注意,此功能需要安装latexdiff(并在路径中找到)。 找到pdflatexokular

也很重要

第一种是我喜欢的处理LaTeX的方法,所以你也可以将它变成latex。 第二个是我的PDF阅读器,我想你要在gnome或其他解决方案下使用evince

这是一个快速版本,考虑到单个文档,这是因为使用git,您将失去大量时间和精力来跟踪多文件LaTeX文档。您也可以让git执行此任务,但如果您愿意,也可以继续使用\include

答案 3 :(得分:3)

另一个选择是使用Authorea,这是科学论文的某种Github。 Authorea中的每篇文章都是Git回购。你编写的LaTeX会被渲染为HTML5(以及编译时的PDF)。

答案 4 :(得分:0)

将此用于版本差异,以防您使用Windows,无需安装,只需一个简单的bat脚本 它在windows10上完美运行,miktex2.9:

https://github.com/redreamality/git-latexdiff