I've been using Git for a long time, but I'll be honest: I still have to pause before typing git reset. Is it --soft or --mixed I need? What exactly is about to happen to my staged files versus my working directory?
That hesitation is a problem. A version control system should be a trusted safety net, a tool that gives you the confidence to experiment and move quickly.
But for many of us, Git can feel like a command-line minefield, where one wrong flag can vaporize hours of work.
If you can't predict precisely what a tool will do, you can't trust it. And I never fully trusted Git.
After my personal list of git aliases grew out of control, I decided to build the tool I always wanted: Hug SCM.
Hug is a humane wrapper for Git, designed around a simple principle: give developers confidence. It's not a replacement for Git, but a friendly, predictable layer on top.
How Hug Builds Confidence
Hug is organized around simple, memorable patterns.
Short commands are for safe, everyday tasks.
Longer, more explicit commands are for powerful or destructive actions. And everything has a safety net.
1. Predictable Naming Conventions
Commands are grouped by what they operate on. No more wondering if a command affects the branch, the HEAD, or the files on disk.
-
b*for branches (hug bc new-feature) -
h*for HEAD operations (hug h back) -
w*for the working directory (hug w discard)
2. Destructive Actions Are Explicit and Safe
In Hug, you can't accidentally destroy work. For example, hug w zap-all is the "nuclear option" to completely reset your repository. But it's not scary, because it's safe by default:
- It requires explicit confirmation.
- It always shows you a --dry-run preview of what will be deleted first.
This way, you know exactly what's going to happen before you commit to it.
3. Common Tasks are Simple and Intuitive
The commands you use most often are short, sweet, and do what you expect.
Want to undo your last commit but keep the changes to fix them? Just hug h back (h for Heah; back). The head goes back, and nothing else happens. Your changes are still there in your working directory. It’s a safe "soft" reset, no flags to remember.
Need a new branch? hug bc my-new-idea (Branch: Create) creates it and switches to it in one step.
It’s about turning Git’s sharp edges into a smooth, reliable workflow.
See it in Action
Here's a quick demo of some commonly used Hug commands:
hug s (for Status):

What now?
For the first time in years, I feel fully in control of my version control. I'm no longer afraid of reset, rebase, or cleaning my working directory, because my tool is designed to protect me.
If you've ever felt that same hesitation or frustration with Git, give Hug a try. You can find the installation instructions and more on the Hug Documentation site:
https://elifarley.github.io/hug-scm/
Let me know what you think


Top comments (0)