Using Scrivener and GitHub

I’m participating in this years NaNoWriMo, something I missed last year. For those unfamiliar, the idea is to write a 50,000 word novel during November. With stuff like that, backup and syncing between computers becomes an issue.

Now, I made a smart choice: Instead of using Microsoft Word or other, similar inadequate applications to write the manuscript, I use Scrivener. It saves its data in what seems like a static file at first glance:

However, upon closer inspection it’s really a folder with a lot of TXT, RTF and XML files, which is perfect:

Why is it perfect? Because it plays well with git, that’s why. I have a nice little private repository on GitHub, and because I’m essentially tracking individual textual files I get nice diffs:

Sure, RTF can get a little problematic to read in a diff, but it’s better than the binary formats. And yes, Word’s file format maybe zipped XML, but you can’t just version individual XML files within the docx archive.

With GitHub, my novel is backed up and accessible from almost any computer I want, and if I don’t have a computer with Scrivener nearby I can just log in to GitHub and read/copy parts of the Novel. I haven’t tried Inline Editing and I don’t think it’s gonna work since Scrivener stores a checksum of each file, but there is definitely some idea for growth.

2 thoughts on “Using Scrivener and GitHub

  1. This process still working for you? Have you run into any caveats or gotcha’s using git with scrivener? I’m thinking of implementing the same kind of system for a writing project I’m working on, and I’m trying to decide whether I should git the scrivener file, or the folder of plain text files exported automatically from scrivener. Any opinions or thoughts?

  2. I’m using a Typewriter for my current NaNoWriMo project, but overall the process was still working when I did a research project a month or so ago. I’d definitely keep the Scrivener file, because getting text out of Scrivener is easier than recreating a scrivener project from text.