I've been accumulating Git aliases for years. Most of them are junk — things I set up once and never used again. But a handful have become so embedded in my muscle memory that I genuinely forget the full commands they replace.
Here are the ones that survived the cut. No novelty, no cleverness — just the aliases I actually type multiple times a day.
The essentials
git co for checkout. Obvious, boring, saves keystrokes hundreds of times a week. Same deal with git br for branch and git st for status. If you're still typing the full words, start here.
git lg — this one maps to a custom log format: one-line, graph view, with relative dates and author names. The default git log output is borderline unusable. A good lg alias turns it into something you actually want to look at.
git undo — aliases to reset HEAD~1 --mixed. Undoes the last commit but keeps the changes staged. I use this probably once a day when I commit too early or with the wrong message. Having it as a single word removes the friction of remembering the reset flags.
The workflow ones
git wip — stages everything and commits with the message "WIP". For when I need to switch branches fast and don't want to stash. I always squash these later, but having a one-word "save my current state" command is invaluable.
git cleanup — deletes all local branches that have been merged into main. Run it once a week and your branch list stays manageable. The underlying command is ugly enough that I'd never type it from memory.
git recent — shows the 10 most recently checked-out branches. When you're juggling multiple features and reviews, this is faster than scanning the full branch list. I stole this from a coworker and it immediately became essential.
The dangerous one
git yolo — add -A && commit -m "yolo" && push. I use this exclusively for personal projects and throwaway branches. It exists because sometimes at 11pm you just want to push the thing and go to bed. Not for production. Definitely not for production.
Why aliases matter more than you think
The argument for aliases isn't really about saving keystrokes. It's about reducing the friction between intention and action. When "undo the last commit" is a single word instead of a command you have to look up, you do it without hesitation. That changes how you work — you commit more often, experiment more freely, and recover faster.
The best dev tools aren't the ones that do the most. They're the ones that make the simple things instantaneous.