Chris Griffing

A Collection of Random Ramblings and Eclectic Interests

Like a Git Machine

April 01, 2021

Do you ever find yourself stuck in the monotony of "git status", "git commit", blah, blah, blah? I just got tired typing that out. There has to be a better way.

Well, I looked and couldn't find it. So, I took inspiration from pioneers like the creator of the Rockstar programming language. It actually isn't related at all, but I still think its cool.

Anyway, what were we talking about? Oh yeah, git-machine. This is the future. Using git should be as expressive as everything else you do.

Examples:

  • git push -> just get on up
  • git commit -> lets hear ya say -m "ain't it funky"
  • git status -> just look at this mess

Here is a link: https://cmgriffing.github.io/git-machine/

and the github repo is here: https://github.com/cmgriffing/git-machine

Let the disco ball of productivity consume you

How does it work? Lets dig into it. It uses Go and a faux pattern matching library. It is not quite as robust as you would expect from a language with proper pattern matching but it was surprisingly easy to use. Here is a link to the library we used for that: https://github.com/alexpantyukhin/go-pattern-match

You might also wonder how we made such an amazing install process. Well, sorry, its just godownloader and goreleaser. They are the number one reason I prefer to make cli tools with Go. I actually spent a day making my own script for all of that before a viewer told me it existed. Don't be like me, just use it.

At the end of the day, we actually have a usable tool for making git commands more fun. You don't have to use it. Nobody is going to force you but, damnit, you owe it to yourself to let your git commands flow through you. In the future, we may even make it so that the "grammar" is plugin based.

Cartoonish James Brown figurine

© 2023 Chris Griffing