Rust
Ever since I learned Git, I've used it in all my development projects. Even on solo projects, I like to commit to Git, as it's such an ingrained part of my workflow.
I generally prefer using Git from the terminal rather than a GUI. I feel it gives me more control,
since Git was built for the terminal. However, one thing annoyed me about Git's terminal experience:
staging individual files. git-add
has an
interactive mode that aims to alleviate this,
but I found its interface clunky. I looked around for alternatives, but those I found either did too
much or had other problems. Thus, I decided to create gadd
: a small command-line utility for
staging files to Git.
I wanted to program more in Rust after
using it for Advent of Code, and found it suitable for
a terminal application like this. To interact with Git, I used Rust bindings for
libgit2
. This taught me a lot about how Git works under the hood — as is
often the case, it is more complex than it looks on the surface!
Now I use gadd
almost daily, and quite enjoy it. There's something extra satisfying about
creating your own tool and tailoring it exactly to your needs.
hermannm/gadd