博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git 对 Microsoft Word 进行版本控制
阅读量:6159 次
发布时间:2019-06-21

本文共 3611 字,大约阅读时间需要 12 分钟。

  昨天中国高校发生了一件骇人听闻的事情,听说不少高校的校园网用户连接校园网被勒索病毒给黑了,重要文件全部被加密,必须要支付赎金才能解密,具体新闻可以参见:http://www.sohu.com/a/140236495_346360。而且还有不少是和我一样的大四毕业狗,听说因为毕业论文没有备份,结果被黑了,然后,然后就没有然后了。。。真的是欲哭无泪啊。看到这个消息,我想起来我的没写完的毕业论文好像也没备份,吓得我赶紧去把论文备份到onedrive上面去了。据说微软之前已经打过补丁了,只是我国广大使用盗版windows的用户(包括我~-~)相当一部分都没有自动更新打补丁的习惯,像我之前就特别讨厌windows的自动更新,感觉浪费时间,现在才知道那真的不是没有用啊!还好win10是强制自动更新的。看来以后我得养成经常备份重要文件的习惯了,不然哪天电脑也被黑了,文件丢了,真的是欲哭无泪了。

  说到文件备份,我们一般想到的当然就是什么云盘之类的啦,比如百度云,腾讯的微云之类的,当然对于office 文档而言,onedrive

本身就是一个很棒的备份工具。但是这些操作都有些太麻烦了,而且如果文件需要频繁的修改,就得不停地上传,下载,实在是太麻烦了。要是有一个能方便控制版本的工具就好了。说到版本控制,写代码的都知道有大名鼎鼎的git啊!诶,对了,能不能用git 对 word文档进行版本控制呢?我突然想到这里,就用google 搜了一下,发现还真的可以。下面我就给大家介绍怎么做。

  http://blog.martinfenner.org/2014/08/25/using-microsoft-word-with-git/ 这篇文章对用git 进行word版本控制讲的比较清楚,但是有些细节遗漏了。于是我又去github上面找了一个:https://github.com/vigente/gerardus/wiki/Integrate-git-diffs-with-word-docx-files    这里就讲的非常清楚了。

  首先,简单介绍一下git。维基百科上是这么介绍git的:

git (·))是一个软件,最初由(Linus Torvalds)创作,于2005年以发布。最初目的是为更好地管理开发而设计。应注意的是,这与GNU Interactive Tools(一个类似界面的)有所不同。

git最初的开发动力来自于和。git最初只是作为一个可以被其他前端(比如Cogito或Stgit)包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用git进行版本控制,其中包括、和内核等项目的开发流程

简单来说就是一个分布式版本控制系统,著名的github网站就是建立在git的基础上的。如果你还不会使用git,请去google 相应的教程(其实官网文档就挺好),简单上手使用估计半个小时就可以了。

git 一般只能对纯文本文件进行版本控制,但是如果有其他中间转化软件的协助,就可以对任意二进制文件进行版本控制了。word 的.doc 或者 .docx 就不是一个纯文本文件,所以需要第三方转化工具,将其转化为 纯文本。这里的工具就是 pandoc。pandoc is

a universal document converter。即是一个通用的文档转换器。

If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert documents in , , , , , , , , , Emacs , , Microsoft Word , LibreOffice , , or  to

  • HTML formats: XHTML, HTML5, and HTML slide shows using , , , , or .
  • Word processor formats: Microsoft Word , OpenOffice/LibreOffice , 
  • Ebooks:  version 2 or 3, 
  • Documentation formats: , , ,  pages, 
  • Page layout formats: 
  • Outline formats: 
  • TeX formats: , , LaTeX Beamer slides
  •  via LaTeX
  • Lightweight markup formats:  (including ), , , , , Emacs , 
  • Custom formats: custom writers can be written in .

  看到上面这么多眼花缭乱的格式,就知道 pandoc有多牛逼了。当然我们这里只需要将其转化为markdown 格式。下面开始说 git 对word 进行版本控制的 步骤:

1. Install pandoc.   去http://pandoc.org/installing.html 找到合适的pandoc下载文件,然后下载安装。

2. install git

3. 如果是在 unix(linux/macosx)系统下,编辑 ~/.gitconfig 文件,如果是在windows系统下,编辑 git 安装目录下的 /mingw64/etc/gitconfig 文件,加上这么一段话:

[diff "pandoc"]  textconv=pandoc --to=markdown  prompt = false[alias]  wdiff = diff --word-diff=color --unified=1 然后在你的工程目录下新建一个 .gitattributes(linux/mac)文件(windows是gitattributes 文件),然后写入:
*.docx diff=pandoc 当然上面的是docx文件,如果是doc文件,把docx换成doc应该也是一样的。 然后 在工程目录下初始化git(git init) git add .    即把所有的文件都添加进去(包括.gitattributes文件) 其他的 git commit -m     git remote add origin  git push origin master  等都是一样的。 现在如果想要看本次修改之后与上次commit 之间的差别,可以使用命令(file.docx是你的word文件名):
git wdiff file.docx 这个命令会将本次修改的与上次不同的地方用彩色标识出来。 如果想查看 历次的改变(all changes),可以使用命令:
git log -p --word-diff=color file.docx

4. 使用pandoc。对于你想要git 控制版本的文档file.docx 在命令行(windows)或者unix下的shell,输入命令:

pandoc -s file.docx -t markdown -o file.md这个命令将你的.docx 文档转化为 .md markdown 格式。然后再 git add file.docx file.md (或者 git add .),git commit即可。 还是看我自己的一个实际的小例子吧。我在project 目录下有 一个名为 How_to_live_your_college_life.docx 的文档,在使用pandoc 转化为markdown之后,我 一次push,commit 然后我把标题改了一下,保存。在git bash 下,输入:git wdiff How_to_live_your_college_life.docx 得到结果如下图1所示:                             图1 图1中绿色红笔圈出来的部分就是我上一次修改的内容。 再执行git log -p --word-diff=color How_to_live_your_college_life.docx 命令,就会把历次修改的部分用绿色标注出来,如图2所示(部分):                             图2 哈哈,就是这么简单,几行命令就搞定啦。大家快过来试试吧!
热爱编程,热爱机器学习! github:http://www.github.com/Lyrichu github blog:http://Lyrichu.github.io 个人博客站点:http://www.movieb2b.com(不再维护)

转载地址:http://nosfa.baihongyu.com/

你可能感兴趣的文章
[填坑手册]小程序目录结构和组件化使用心得
查看>>
absolute
查看>>
数据库索引介绍
查看>>
[转]边框回归(Bounding Box Regression)详解
查看>>
supervisor安装部署和使用实例
查看>>
10046事件
查看>>
机器学习-有监督-SVM
查看>>
scala学习手记26 - 重用函数值
查看>>
第四次作业
查看>>
Android 本地tomcat服务器接收处理手机上传的数据之案例演示
查看>>
关系型数据库和NOSQL的对比
查看>>
性能测试初学_windows 计数器
查看>>
AHOI2005航线规划 bzoj1969(LCT缩点)
查看>>
洛谷P3381 【模板】最小费用最大流
查看>>
mysql的分库分表
查看>>
初级程序员面试不靠谱指南(六)
查看>>
python OpenGL 安装
查看>>
Asp.NET获取文件及其路径
查看>>
html / css学习笔记-1
查看>>
[学习笔记]标记永久化
查看>>