給論文也搞個版本控制

用Git進行版本控制的好處就是可以無限次回退到上一个版本,以及直觀地查阅歷次修订的位置和内容。

問題的關鍵在于Git是用來對源代碼進行版本控制的,無法適配 .doc .docx 這種二進制文件,所以Microsoft Word文檔没法直接用Git作版本控制。

最開始的一些彎路 #

既然Microsoft Word不行,那就換個文本編輯器。

我开始查找适配Git的文本编辑器。Obsidian當然很好,它生成的是.md文件,能被Git識別。但它很严重的一个缺陷是使用Markdown語法,無法一邊寫一邊添加可被Zotero識別的脚注,也就不能批量修改脚注格式。Pandoc + better bibtex 弥补了这个问题,但是上手困难,最終被我放棄了。

現在的解決方案 #

文本編輯器還是使用我熟悉的Microsoft Word。利用Pandoc和Git, 讓Microsoft Word也可以一邊寫一邊commit to master,实现版本控制。

Pandoc在這裏的作用:簡單來說就是自動将 .docx 文件转换为可被Git識別的 .md 文件。

第一步:下載和安裝Git和Pandoc:

第二步:将我論文的Word文檔所在的文件夹设置为版本库, 在寫作時,每更新一次就commit to master一次。

END。搞定了。

如何将Microsoft Word文檔所在的文件夹设置为版本库 #

以下内容來自:  如何对Word文件进行「纯文本式」版本控制? - 少数派。 

配置Git #

在用户文件夹下找到文件 .gitconfig, 使用文本编辑器打开它, 加入下面的内容,然后保存。

[diff "pandoc"]  
  textconv=pandoc --to=markdown  
  prompt = false  
[alias]  
  wdiff = diff --word-diff=color --unified=1

新建一个文件夹, 我暫時命名为 git-word-demo。在cmd中輸入:

# 进入git-word-demo文件夹  
cd git-word-demo  

# 创建Git仓库  
git init

如果创建Git仓库成功,cmd中会显示“Initialized empty Git repository in C://users/../balabala/git-word-demo”(👈你创建的文件的位置)

在 git-word-demo 目录下, 新建一个文件 .gitattributes, 写入下面的内容,然后保存。

*.docx diff=pandoc
  • 如何“新建一个文件 .gitattributes”

    可以直接用text文件建立, 然后把text的文件名改成.gitattributes.。 注意是.gitattributes.,不是.gitattributes, 这个点(.)一定要加。

编辑Microsoft Word文件 #

git-word-demo 文件夹下,新建一个Microsoft Word文件, 我这里命名为 example.docx, 然后按照平常一样进行编辑, 完成之后保存并提交,进入该目录,在终端中输入:

git wdiff example.docx

就可以看到增加或删除的内容。

使用Git的GUI客户端会更加直观,比如 GitHub Desktop, 绿色表示此次修訂中增加的文字,红色表示此次修訂中删除的文字。

參考文獻 #

指导Git使用的两篇博文:

  1. Git创建版本库及git init、add和commit -m的基本使用_51CTO博客_git add. git commit -m
  2. Git文件.gitignore、.gitattributes、.gitkeep用法解析 - 掘金

?隨機抽選一篇