Git
Git is a popular source control system that has a number of popular online forges have useful options for writers.
Disconnected Usage
Git was written around the idea of multiple people working on it without having continual connections to each other. For writers, this means that it will continue to function even without an Internet connection, allowing work on beaches, planes, and trains. For a long time, I didn't have Internet at work which meant my entire lunch break was done without being able to upload the changes, but Git let me continue working, commit changes, and even branch code without fear of losing my data; then later, when I had Internet, I could push up the changes and not be worried about overwriting any change I made on a different machine, my phone, or anywhere else.
This also means if you make a change on two different machines, Git will merge the two together. If there is a conflict, it will ask you to resolve it manually, but then remember that resolution and not ask it again.
Local Backups
When Git creates a local copy (through the git clone
) command, it downloads the entire history with it. This means every copy is also a backup of every commit, change, and branch made from the first word written.
While I don't think most authors work with multiple computers (I have a laptop, phone, and a desktop machine), this also applies to backups made on thumb drives, OneDrive, or any other copy.
Offline copies can easily be brought up to date, including any resolved conflicts and changes, with relatively simple commands to merge.
Offline Backups
When making an offline backup, such as copying to a zip drive, it would be best to copy the entire directory (//
according to conventions) to the folder without compressing it because Git already compresses data. However, the minimal amount that should be backed up is the //.git/
directory which is where the entire history is stored.
Branches
Git also has first-class support for branches. These basically allow you to have different versions of the code and not lose them. A good example is if you decide you went down the wrong path for a plot, you can branch it off so you don't lose it, and then go back and toss the parts you don't want and write it again.
Branches are also useful for coordinating with editors and readers, even if they don't use Git themselves.
Ignoring Files
To avoid accidently checking in a binary file, Git can automatically ignore those files by editing //.gitignore
and add the following:
*.pdf
*.epub
*.docx
.cache