A lot of non-coders and people unfamiliar with the app development scene often confuse Git and GitHub, but only the latter is the online code repository for inscrutable projects. That's one half of the story, but Git is where all that code gets written, merged, and maintained. It's a free, open-source version control system designed to track changes in files that are usually code. But here's the secret I wish I'd learned years ago: at its core, Git is a version tracker for documents, and it absolutely does not care if those documents are complex code or your weekly grocery list.

Until recently, my personal digital life was a disaster. I had analog notes in one notebook, digital lists in three different apps, financial spreadsheets scattered across two cloud drives (and my local desktop), and a folder of "useful URLs" that was an untamed wasteland. Finding the "latest" version of my own budget was an archaeological dig. I’d buried myself in a deep hole of note-taker apps and nested folders, and managing versions or revisions was a nightmare. You're right, I'm laying this context because Git has become the only viable solution I've found for proper, redundancy-proof version tracking, with the almost magical ability to support multiple, concurrent draft changes.

Forget code, and focus on file content

How Git works

After spending years combing through that scattered mess of files, I finally landed on Git. Sure, it was designed to track code, but there's no rulebook that says you can't throw other document types in there. I'm already accustomed to editing files in VSCode, and prepping drafts there for a Git repo felt like a natural extension. My documents broadly span spreadsheets for my finances, simple lists, plaintext files packed with useful URLs, and even important documents like insurance policies or personal project files. As long as it can be saved as a file, Git can track it. This was the "aha!" moment that changed everything.

If your spread is anything similar, you've likely made changes, saved the file, and realized half an hour later that it was a terrible mistake. Most document editors can't help even if you mash Undo, but Git is just smarter. Git gives me a dedicated editing sandbox called a working directory. Here, I can just open the file and edit it when I need to make a change.

When I’m happy with the changes — say, I've updated my monthly budget — I use a dedicated command, git add, to move those changes to a staging area. This is the real secret sauce. The staging area is a waiting room. I can maintain multiple drafts of changes here, all built on the version of the file securely stored in Git. Then, I use the all-important git commit command to lock those changes in. This takes everything in the staging area and saves it as a permanent "snapshot" of my files.

Version history tracking becomes a breeze

A powerful tool for free

Git maintains a record of the commits pushed to my files, creating a trackable, chronological version history. This makes it super easy to see what my stock portfolio looked like at this time last year, for instance. If I make a mistake with the commits despite the staging area serving as a failsafe, I can always revert my file to the last recorded commit, undoing changes I couldn't have removed otherwise.

Here's the best part: Git is FOSS (Free and Open Source Software). You can see exactly how it works, and more importantly, you can install it on almost any operating system. But the real game-changer for me is that you can level up to self-hosting Git. You can run your own Git instance on your local network (LAN) or a NAS (Network Attached Storage). I have mine running on a low-powered machine that’s always on. This gives me constant, protected access to my entire documentation history from any device in my home, without ever having to upload my private financial data or projects to a third-party cloud.

Moreover, you don't lose much in terms of shareability either. Git typically handles code, which is in concurrent development by entire teams of people. As such, you can have family members or friends collaborate on a document in Git, and the permission to commit changes to the main file still remains access-controlled. I won't even risk overwriting someone else's proposed changes because Git is smart enough to merge changes if my partner and I simultaneously add Bread to the shopping list text file in a commit. And if you do want to make something public, like a project you're proud of, you can easily upload it to an online and indexed repo like GitHub or Bitbucket. But you never have to. Your data stays local by default.

The one tool you need for peace of mind

This way, Git serves as a lovely, invisible base for the tools I already love. Power-user-centric note-takers such as Joplin and Obsidian have fantastic support for using Git as their backend. This means I get their beautiful, user-friendly interfaces for writing and organizing, but I get Git's bulletproof version control that saves and syncs content in the background. It is the absolute best of both worlds. And when I'm done with a project? I just archive it for posterity.

Sure, Git is not "user-friendly" in the way a shiny new app is. It has a learning curve that can be intimidating. However, it has superior features that you simply will not find in the vast majority of note-takers. I'm talking about true, atomic version history, the power to manage simultaneous drafts, and the security of owning your data. Until a conventional document manager or note-taking app gets serious and adopts features this powerful, I'm done app-hopping. I'm happy managing files one git commit at a time.