給論文也搞個版本控制

用 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用法解析 - 掘金

?隨機抽選一篇