Many people has said they are thankful it calls out to "git" instead of using FFI, which I think is weird, but then there are others who go ahead and say that it is a worse thing to do, and I want people to know that no, it is not.
I chose to shell out to git because it's fast, stable, and has great cross-platform support. Tools like go-git and libgit2 are interesting (and I’ve looked into them), but they come with their own tradeoffs like performance, features, and build complexity.
That said, I totally get the curiosity — thanks for the discussion!
I'm curious how other engineers manage their Git setup and workflows in practice. Specifically:
1. Primary Git client: Do you mostly use the CLI, a GUI tool, IDE integration, or custom scripts? And why?
2. Workflow shortcuts: Do you follow the classic `git add → commit → push` step-by-step, or do you bundle them into a single alias or script?
3. Interactive tasks: How do you handle more interactive tasks like staging hunks, resolving conflicts, or browsing history?
4. Alias and script maintenance: If you maintain custom aliases or functions, how do you keep them organized and shareable?
I’d love to hear what works for you (and what didn’t). Tools, habits, setups — anything goes!