Abstractions Come at a Cost
One of my sincerest beliefs in software is that as developers, we need to invest the time into mastering our tools. Before using an abstraction over a certain tool, it is better to master the tool itself.
In this case, Git GUIs like SourceTree, Git Kraken, or the one embedded in VS Code are abstractions over the Git CLI.
Abstractions can make your workflow faster and more streamlined, but if you don’t fully understand the power of the raw tool, your knowledge will be shallow and you could be missing out on other efficiencies.
Personalize Your Workflow
By focusing on learning the fundamentals of the raw tool, you can craft your own workflow instead of the abstraction forcing an opinionated workflow upon you. Over the years, I’ve created my own git aliases that support the most common commands I use during my git usage. Here are a few:
gs = git status git cob = git checkout -b git plo = git pull origin git fom = !git fetch && git merge origin/main git po = git push origin
I would much rather spend the time to build up configuration and workflow that supports how I like to work rather than learn and adopt a workflow that someone else created. You can call it “not invented here” syndrome, but I think it’s really about building a system that you fully understand because you built it yourself from scratch. That goes for git or any other developer tool out there.
This article by Adam Tal illustrates the point I’m trying to make here. You might always be working hard - trying to accomplish the next project, story, or ticket. Don’t forget to invest in learning and mastering the foundations of the tools you use everyday. You will most definitely make mistakes along the way, but sometimes that’s the best way to learn. The knowledge and increased comfortability with such an essential tool will be well worth the cost.