vault backup: 2025-12-10 11:37:35
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
---
|
||||
title: Integrate git diffs with word docx files
|
||||
source: https://github.com/vigente/gerardus/wiki/Integrate-git-diffs-with-word-docx-files
|
||||
---
|
||||
|
||||
# [Integrate git diffs with word docx files](https://github.com/vigente/gerardus/wiki/Integrate-git-diffs-with-word-docx-files)
|
||||
|
||||
This section was inspired by Martin Fenner's ["Using Microsoft Word with git"](http://blog.martinfenner.org/2014/08/25/using-microsoft-word-with-git/).
|
||||
|
||||
To configure git diff:
|
||||
|
||||
1. [**Install pandoc**](http://pandoc.org/installing.html).
|
||||
2. Tell git how to handle diffs of .docx files.
|
||||
1. Create or edit file ~/.gitconfig (linux, Mac) or "c:\\Documents and Settings\\user.gitconfig" (Windows) to add
|
||||
|
||||
```gitconfig
|
||||
[diff "pandoc"]
|
||||
textconv=pandoc --to=markdown
|
||||
prompt = false
|
||||
[alias]
|
||||
wdiff = diff --word-diff=color --unified=1
|
||||
```
|
||||
|
||||
2. In your paper directory, create or edit file .gitattributes (linux, Windows and Mac) to add
|
||||
|
||||
```shell
|
||||
*.docx diff=pandoc
|
||||
```
|
||||
|
||||
3. You can commit .gitattributes so that it stays with your paper for use in other computers, but you'll need to edit ~/.gitconfig in every new computer you want to use.
|
||||
|
||||
|
||||
Now you can see a pretty coloured diff with the changes you have made to your .docx file since the last commit
|
||||
|
||||
```shell
|
||||
git wdiff file.docx
|
||||
```
|
||||
|
||||
To see all changes over time
|
||||
|
||||
```shell
|
||||
git log -p --word-diff=color file.docx
|
||||
```
|
||||
|
||||
## Automatically when running `git commit`.
|
||||
|
||||
This is only going to work from linux/Mac or Windows running git from a bash shell.
|
||||
|
||||
1. [**Install pandoc**](http://pandoc.org/installing.html). Pandoc is a program to convert between different file formats. It's going to allow us to convert Word files (.docx) to Markdown (.md).
|
||||
|
||||
2. **Set up git hooks to enable automatic generation and tracking of Markdown copies of .docx files.**
|
||||
|
||||
Copy these hook files to your git project's `.git/hooks` directory and rename them, or soft-link to them with `ln -s`, and make them executable (`chmod u+x *.sh`):
|
||||
|
||||
- [pre-commit-git-diff-docx.sh](https://github.com/vigente/gerardus/blob/master/shell-script/pre-commit-git-diff-docx.sh) -\> .git/hooks/pre-commit
|
||||
- [post-commit-git-diff-docx.sh](https://github.com/vigente/gerardus/blob/master/shell-script/post-commit-git-diff-docx.sh) -\> .git/hooks/post-commit
|
||||
|
||||
Now every time you run `git commit`, the pre-commit hook will automatically run before you see the window to enter the log message. The hook is a script that makes a copy in Markdown format (.md) of every .docx file you are committing. The post-commit hook then amends the commit adding the .md files.
|
||||
|
||||
|
||||
## Manually by creating a Markdown copy of the .docx file.
|
||||
|
||||
This works in linux, Mac and Windows.
|
||||
|
||||
1. [**Install pandoc**](http://pandoc.org/installing.html).
|
||||
|
||||
2. **Edit your Word document** as needed.
|
||||
|
||||
3. **Run pandoc** from the linux or Windows command line. This will create a Markdown version of your file (without Figures, but with equations in latex format)
|
||||
|
||||
```shell
|
||||
pandoc -s file.docx -t markdown -o file.md
|
||||
|
||||
```
|
||||
|
||||
4. **Update the ChangeLog**
|
||||
|
||||
5. **Commit both files with git**
|
||||
|
||||
```shell
|
||||
git add file.docx file.md
|
||||
git commit
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user