GoWin Tools
Tools
โ† Text Diff Checker

Text Diff Checker ยท 6 min read

Version Control Basics: Why Every Writer Needs It

Saving 'document_v3_FINAL_revised2.docx' is a failed version control system. Real version control gives you a complete history of every change, the ability to restore any previous state, and safe collaboration โ€” for writers just as much as for programmers.

The Problem Every Writer Recognises

You have a folder somewhere on your computer that looks like this:

essay_draft.docx
essay_draft_v2.docx
essay_draft_v2_REVISED.docx
essay_FINAL.docx
essay_FINAL_v2.docx
essay_FINAL_actually_final.docx
essay_submitted.docx

This is an improvised version control system. It works โ€” sort of โ€” but it is fragile, confusing, and prone to disaster ("I overwrote the wrong file"). It also gives no information about what changed between versions, only that they are different.

Version control software solves this systematically. It tracks every change, labels each version with a message explaining what changed, and allows you to restore any previous state instantly.

What Version Control Actually Does

A version control system (VCS) maintains a complete history of changes to a file or folder. The core operations are:

  • Commit: Save a snapshot of the current state with a description ("Added introduction paragraph," "Fixed citation in section 3")
  • History: View the complete list of all saved snapshots, who made them, and when
  • Diff: Compare any two versions to see exactly what changed
  • Revert: Restore any previous version instantly
  • Branch: Create a separate line of development (for example, "try a different ending") without affecting the main version
  • Merge: Combine changes from two separate lines of development

Git: The Standard Tool

Git is the dominant version control system, created by Linus Torvalds in 2005 to manage the Linux kernel source code. It is now used by tens of millions of developers. For writers, the core Git workflow is simple:

  1. Create a repository: git init my-book
  2. Write or edit your document (plain text, Markdown, or LaTeX work best)
  3. Save a version: git add chapter1.md then git commit -m "Finished the opening scene"
  4. Repeat after each significant change
  5. View history: git log
  6. See what changed: git diff
  7. Restore an older version: git checkout <version-id> chapter1.md

Why Plain Text Matters for Writers Using Version Control

Version control works best with plain text files โ€” .txt, .md (Markdown), .rst (reStructuredText), or .tex (LaTeX). Diff tools can show exactly which words changed in a plain text document. Word processing formats (.docx, .pages) are stored as binary XML packages; a diff of a .docx file shows XML changes rather than prose changes, which is far less useful.

Many writers who use version control have adopted Markdown as their writing format for this reason. Markdown is plain text with simple formatting conventions โ€” **bold**, _italic_, # Heading โ€” that renders cleanly to HTML, PDF, or Word when needed. Tools like Pandoc convert between Markdown and .docx bidirectionally.

If you must work in Word, the document comparison feature (Review โ†’ Compare) gives a diff-like view between two saved .docx files, which serves a similar purpose for document-centric workflows.

Git for Non-Programmers: The Accessible Options

The command-line interface of Git is off-putting to many writers. Several tools provide friendlier interfaces:

  • GitHub Desktop: A free GUI for macOS and Windows that wraps Git in a visual interface. You click "Commit" instead of typing commands.
  • Obsidian with git plugin: The popular note-taking app has a Git plugin that automatically commits your notes on a schedule
  • VS Code: Microsoft's free text editor has excellent built-in Git support with a visual interface for staging, committing, and viewing history
  • Typora + Git: Typora is a minimal Markdown editor that pairs well with Git for distraction-free writing with version tracking

Remote Backup: GitHub, GitLab, Codeberg

Version control on your local machine protects against "I deleted the wrong paragraph." Pushing to a remote repository protects against "My laptop died." GitHub (microsoft-owned), GitLab, and Codeberg all offer free private repositories where you can store your writing history remotely.

For writers with privacy concerns about their work, Codeberg is a non-profit alternative that is free, open-source, and not connected to any commercial entity. Self-hosting Git (on a personal server or NAS) is also an option for complete data ownership.

Branching for Experiments

The branching feature of version control is particularly valuable for creative writing. If you want to try a completely different direction for a chapter without losing your current draft, you create a branch:

  • git branch alternative-ending
  • git checkout alternative-ending
  • Write the experimental version
  • If you like it, merge it into the main branch
  • If you do not, delete the branch โ€” the original is untouched

This is the digital equivalent of writing a different ending on a separate notepad โ€” but with the ability to merge good elements from the experiment back into the main draft, and with a complete record of every change in both directions.

Version Control is a Safety Net, Not a Burden

The biggest obstacle to writers adopting version control is the perceived overhead โ€” learning new commands, remembering to commit. In practice, committing takes about five seconds once the habit is established. The payoff โ€” never losing a good paragraph, never being unable to recover from a disastrous edit, always knowing what changed between drafts โ€” is enormous for any writer working on projects longer than a single day.

Compare any two texts โ†’

References

  1. Chacon, S., & Straub, B. (2014). Pro Git (2nd ed.). Apress. git-scm.com/book.
  2. Loeliger, J., & McCullough, M. (2012). Version Control with Git. O'Reilly Media.
  3. Spinellis, D. (2005). Version control systems. IEEE Software, 22(5), 108โ€“109.
  4. Manber, U. (1988). A survey of approximate string matching. Information Processing & Management, 24(1), 83โ€“95.
  5. Linus Torvalds. (2007). Git talk at Google. youtube.com/watch?v=4XpnKHJAok8.