給論文也搞個版本控制
用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使用的两篇博文: