I was born and raised in Germany, and since the age of 8, computers and video games have fascinated me (starting with a Comodore64). When I was 12, my best friend told me that you could actually program these machines yourself, so we taught ourselves how.
Now, I am 13 years into a game development career with stops in small and big companies where I worked on titles like Settlers, Assassins Creed, and Forge of Empires. While professionally mostly dealing with programming languages like C++, C#, Js, and Java, I always had a crush on alternatives like D and now Rust. Where D never really ignited, Rust seems actually to establish itself now. This is also why I chose to use Rust as one of our core technologies when we founded our startup Gameroasters in 2020.
Git is an essential tool for every programmer. Still, I saw how even the most senior developers struggled with some of the less common use cases on the git CLI like stashing, staging individual hunks or lines, blaming files, and browsing the commit log.
Developers in these situations - I included - reach for GUI applications. GUI tools are great: intuitive and easy to learn. Unfortunately, most of them are neither cross-platform nor open source, do not support keyboard navigation, and are clunky and slow (heck, some even use electron - try opening a repo like Linux with >1M commits in those).
Due to the renaissance of terminal tools, I was curious about what’s out there and found a few contenders - it all led me to the dilemma that those were on the other end of the spectrum of UX. Most have tons of hotkeys, you can configure everything, but you need to memorize too much for it to be intuitive.
This left me with a niche and a good use case to practice my Rust skills. This is how GitUI got started, and I am glad to see more and more people joining as users and contributors.
We have contributors come and go, a lot, but I want to say a handful took on a more long-term commitment and helped out on really complex, time-consuming topics, which is really, really great. In total, almost 50 people contributed from small to extensive work.
I want to emphasize how this is the main factor driving me to keep working on GitUI - people actually sacrificing their own free time to join me is just fantastic - thanks to you if you’re reading this :)
GitUI allows you to navigate your Git repo with the comfort of a GUI, the precision of your keyboard, and the performance of Rust - all without leaving your beloved Terminal.
We are closing in on a 1.0 release. The main goal is to support: File-History, Interactive Rebasing, and Visualization of the branching tree structure (a pretty straightforward task in a regular GUI but interesting when limited to the Terminal).
But the development will not stop there, we have many things we would like to do, and Git is a moving target anyway.
GPG Signing of commits is the oldest feature request in the issue list that I did not create. It is not on my personal list of priorities, but it should be doable. Every once in a while, people come by asking for it, but I feel like it is still very niche and so far, no one came forward wanting it hard enough to implement it - so if you feel up for a challenge and want to make some people very happy reach out to me.
GitUI is not tracking any of its users; if people come forward to me with feedback, it is the only way for me to know what they are doing and whether they like it or not. So far, I rarely drilled deeper into their background unless they started to contribute and expressed interest in such an exchange via our Discord-Server. Those stories move me; seeing people even stream their work on GitUI via Twitch is just cool! The imposter in me vividly recalls, though, how tough working on an open-source project in your spare time can be: rude, entitled trolls sometimes taint the feeling you get for giving something back to the open-source community. So let me use this opportunity to invite you to join our Discord if you - and that goes a long, long way - want to say thanks.