Eric C FritzEngineering Thought Leadership
July 20, 20264 min read
Zach Reiner via Unsplash
← All essays
Essay

Thinking With Git

Have you ever wished for better digital organization? Or made a change to something you were working on then regretted it, and wished there was an easy way to go back in time? You can take advantage of version control systems originally designed for building software to keep track of writing, art, or anything you create on your computer. You've probably heard of GitHub, at least as a company. If you're not involved in writing code every day, you may have assumed it's just for software engineers and big corporate projects, but it can be used for anything.

Eric FritzJuly 20, 20264 min read

Have you ever wished for better digital organization? Or made a change to something you were working on then regretted it, and wished there was an easy way to go back in time? You can take advantage of version control systems originally designed for building software to keep track of writing, art, or anything you create on your computer. You've probably heard of GitHub, at least as a company. If you're not involved in writing code every day, you may have assumed it's just for software engineers and big corporate projects, but it can be used for anything.

In the mid 2000s, Linus Torvalds created this software called Git to use for version control during development of the Linux operating system. He's generally famous for creating Linux and consistently ranting at anyone who writes code not up to his standards. In his defense, he's usually correct. Even if you've never heard of him, you probably used the Linux operating system every day. Linux, or software derived from it, helps run everything from your phone to your car. An operating system that complex and that important to so many businesses needs good governance, and Git is a way to keep track of work and manage contributions from many people. Products like GitHub, Atlassian's Bitbucket, and GitLab have all sprung up to manage this process on the web.

The original meaning of the word "git" is a foolish or worthless person (Merriam Webster) which Linus apparently chose on purpose. So if he's cranky about bad code, at least he's in on the joke. Wikipedia defines git as a distributed version control software system that is capable of managing versions of source code or data. That last part is the important bit for us, because data can be anything.

If you've ever been working on a document and accidentally deleted an important part of it, but been able to go back to a previous version and restore that content, that's a form of version control. There's a famous story about the movie Toy Story 2 being saved after parts were accidentally deleted, because one employee had a copy of the movie at home so they could work from their house. But files like movies and Word documents are large and complicated, and don't lend themselves well to being modified. 

It becomes much easier to version control your data if you can keep it in simple, readable formats like plain text or Markdown, which is plain text files with some basic formatting for things like bold, italics, etc. With current AI models, this has an additional benefit, because AI models use Markdown files for context. This blog post was actually written in markdown. Markdown is easy to version control since it's just text, and easy to use to provide context to AI models you're working with. Writing tools like Obsidian make working with markdown files easy.

Git allows you to track changes across multiple branches, which can be split apart and combined back together as you start and finish work. In this image from Atlassian you can see how this could play out.

The purple dots signify your main working path. You branch off into the green dots to work on new things, then merge them back into your main work when they're ready. When you want to release some work, you merge it to the "Main" branch.

If this all seems a little complicated, you don't actually need to start using git in order to get the benefits from this type of thinking. If you start to view your work as data, and think logically about how you manage and control it, you can gain immediate productivity benefits. Instead of ending up with Word documents with names ending in -final.docx, -final2.docx, and -final2-no-really-this-time.docx name your versions with something like the data and time, so you can easily sort them and see which one is the most recent. Instead of keeping critical business documentation in a powerpoint presentation that your group collaboratively edits, think about your source of truth being something text-based like a shared document, which can be used to generate a presentation once all the information has been collated.

If you think about your work as data or information, instead of a series of arbitrary files, it's easier to focus on what you actually need. Whether you're keeping track of a shopping list or preparing a presentation for the C-suite at your company, this should help you keep a better handle on what you're actually trying to create.

Share this essay

I've intentionally chosen not to support comments on this site. If you feel a strong need to discuss something, you can use the social sharing links above to write your own comment. If this post has sparked any big ideas, either positive or negative, I encourage you to write your own post and share it on your own website. Feel free to drop me a link in the contact section, and I'll add links here to interesting responses.