If you work in text, make everything you possibly can a git repository.
This means that if you work in front of a computer, this post is for you. Stop being that person with 50 variations of the same file scattered across your desktop.
Why would we want to do this?#
At the surface level, so you can have a “backup” of things you are working on (yes I know git is not a “backup” per se but won’t argue that here). You enable the ability to rollback changes that are breaking, review where you may have went wrong, and just have a secondary source that you can work from.
But the reason that truly matters: Git forces you to think. When you make “atomic” commits, every piece of text you stage and commit is meaningful, it is visible progress. It is named, tracked and measured creation. When you write a commit message, you are articulating what you just did, why you did it, and why it belongs in your repository.
The unexamined file is not worth saving.
The Changelog to Your Life#
By making everything a git repo, you see your thought process across time. As you grow in your abilities as a writer, programmer, and person - the changelog of your life is apparent.
The person on January 1st is not the same person as on December 31st - I look back on the last few years of my git history and hardly recognize the 2022 or 23 version of my work.
The One Commit Per day Mentality#
Many git hosting providers provide you with meaningful statistics, albeit some would consider it a vanity metric as to how many commits you have made (I would agree that work quality is not measured in git commits). Nevertheless, resolving to make one commit per day is a fantastic way to get you out of writer’s block (programmers experience this too, I have come to realize).
マリウス mentioned how he resolved to make at least one commit per day - this allowed him to build numerous open source and personal projects; as you too track your git contributions, you start to see where you’ve been, and where you are going.
A Practical Workflow#
In 2023, I wrote my first book - entirely tracked in a git repository, version controlled, and written in emacs. The workflow was insanely comfortable - and from then on, any sort of text based workflow has been git version controlled. All writing, all programming and development projects, no matter how big or small, are started with a `git init`.
Magit makes this seamless, nay, pleasurable, to stage commits, pull down changes from remote, even to check PRs and approve them in magit-forge.
While many have asked “when are you switching to Jujutsu” - my answer is a resounding when there is a magit port.
Every project repo contains a README.org, with standard documentation - but also with org TODOs at the bottom. Org agenda aggregates all projects so I always know what needs attention, what is coming up next. The git repository becomes the work itself, but so too the map of the work.
Text as the Primitive#
If you are locked into the hellhole that is modern corporate software - Microsoft office, Google Docs, Trello/Asana/Workday, the project management tool du mois - you face an uphill battle. These tools by their nature obscure your work behind proprietary file formats and hoops to jump through.
Text is the primitive on which all of programming, writing, reading, and learning is done. The more that one interacts with it, the more we come to see that it is a magical world. Git is the steward, the vessel of this primitive across time - it becomes the time machine on which you intellectually explore.
The unix philosophy holds that everything is a file. We can extend this: everything should be a git repository. This allows us boundless creativity without the fear of losing something in the process of creation (which is usually quite messy).
As always, God bless, and until next time.
If you enjoyed this post, consider Supporting my work, Checking out my book, Working with me, or sending me an Email to tell me what you think.