When your clever git alias actually doubles your push time
Description
Screenshot of a tweet on a dark-themed Twitter UI. The tweet, from user “Jiim @devNextDoor”, reads: “i made a terminal alias like: "gpono $1"="git push origin $1 --no-verify" now every time I am about to push I type "git push origi.." and then realise I have an alias, so I delete that and write gpono <branch> thus doubling my time to push. Genius as usual.” The timestamp shows “12:36 AM · Aug 4, 2022 · Twitter for Web App”. Visually it’s white monospaced text on charcoal background, typical of tweet screenshots, with the user’s circular avatar at top left. Technically, the meme jokes about defining a shell alias to shorten the command “git push origin <branch> --no-verify”, but muscle memory makes the developer start typing the long command, delete it, and retype the alias, negating any productivity gain. It highlights CLI workflow habits, Git version-control ergonomics, and the irony of over-optimizing with tooling aliases
Comments
33Comment deleted
Turns out my 200-line .zshrc is just a distributed cache where every alias is a cold miss - by the time I remember ‘gpono’, git already ran the pre-push hook I was trying to skip
The classic senior engineer optimization: spending 2 hours automating a 5-second task, then fighting muscle memory for the next 6 months while your alias silently judges you from .bashrc
The classic developer paradox: spending 10 minutes creating an alias to save 2 seconds, then spending 4 extra seconds every time remembering whether to use the alias or the full command. At scale, this is basically a distributed denial-of-productivity attack on yourself. The real optimization would be a git hook that detects 'git push origi' and autocompletes to the alias, but then you'd spend an hour implementing that to save those 4 seconds. It's technical debt all the way down, except the debt is owed to your own muscle memory
Git aliases: micro-optimizing the 1% of pushes while macro-sabotaging your daily muscle memory hot path
Added a git alias for 'git push --no-verify'; accidentally implemented "exactly twice" semantics: type 'git push', backspace, then 'gpono <branch>'
My gpono alias turned pushing into a two‑phase commit: muscle memory types 'git push origi…', rollback with Backspace, then reissue the alias - latency 2x, hooks still skipped
It's better to use "Oh my zsh" instead of own aliases, imho Comment deleted
tr: "oh my zsh" helps a lot in situations like this Please use English as main language in this chat Comment deleted
это че, не бот? Comment deleted
tr: Isn't this a bot? Please use English as main language in this chat Comment deleted
yeah i am not a bot Comment deleted
please make a bot right now Comment deleted
i have made a ru to en translator bot some time ago Comment deleted
what about other languages Comment deleted
https://t.me/TransRuEnBot Comment deleted
oh lol i used it Comment deleted
Not bad Comment deleted
OMZ slows down zsh. Comment deleted
let's rewrite it in rust :) Comment deleted
happy to use this: gts - git status gaa - git add --all Comment deleted
Do you use git add --all that often to create a shortcut for it? 😳 Comment deleted
also why wouldn't you git add -A? Comment deleted
Yea) Comment deleted
You got to lay off the coffee, dude! Comment deleted
So if I rapidly corrected three files, why should I list them by name? Comment deleted
meanwhile I aliased git to g and have a few functions defined(eg. push/pull/clone), now I mistype everywhere else while invoking git... Comment deleted
The only way I've used aliases is kubernetes namespaces aliasing. And then I've read about k8s context management... Comment deleted
Linux moment Comment deleted
I don’t use aliases at all, if you need to type a long command like that you probably already typed it before so just use ctrl+r to search history instead of memorizing weird acronyms that you’ll never use again, fzf does a great job of making history search even faster by allowing you to fuzzy search the command list Comment deleted
well Comment deleted
ok technically I have custom scripts in PATH for things like this, so ig in some sense I have aliases too. Comment deleted
Just use make if you are going to build your project with so many parameters and options 😅 Comment deleted
The thing is that I don't use it for any particural project. This is incantation enabling shitton of warnings and runtime checkers, I use for debugging one file crap Comment deleted