I would guess a list this long is self defeating. You wouldn't remember the ones you don't use often but would have a better chance remembering the full command because the language of the command is more intuitive.
Memory is pretty weird with these - I find that my hands do most of the remembering, and my mind doesn't have to do much work. It must be a very individual thing - hope everyone is doing what works for them. And you're right that there's always a safe fallback to default commands. I will admit that seeing the list in its entirety when posting it, I was surprised at its length, but I estimate I use at least 50% of these often!
I suppose that is true because I can't remember more than 3 of my shell git aliases but I'm the most basic git user you can get and I don't use them for work.
I recall seeing a omz (IIRC) plugin that reminds you of aliases that match the commands that you just ran. I had this turned on, but it got too annoying :)
...so that I can see if there was any revision to a commit after it was first committed, which files were changed and how much, and pass extra parameters if needed.
Maybe I'm not a rockstar ninja 10x dev, but I've never found typing speed to be a hindrance. I'll usually only go out of my way to alias/script things if they would otherwise involve some clicking around or chaining commands.
One time I argued with my junior developer for like 30 minutes convinced that `git cp` was a built in command and not an alias. Turns out I had been carrying that alias through 4 different dot files managers and had completely forgotten that I wrote it.
how is it a premature optimization? what makes it premature? are you waiting for the thing that comes after git and then you're going to optimize? you don't have to add these aliases if you don't want, but git, and it's usage is fairly mature by this point.
I learned about git switch through comments for this article on reddit. It's definitely something I'm actively trying to adopt at the moment over my old workflow but it's soo hard to overcome years of muscle memory
Eh. I've only ever aliased "git status -s | awk '$1 == "M" { print $2 }' | xargs -t git add" as "git_add_all": branch switching works well enough in VSCode, "git diff" shows you your commit preview perfectly fine, and shortening "git push" and "git commit" never really felt like a pressing concern.
Actually, no, there is also "git_show_branch" because every time I needed that in the shell, I could never remember the proper incantation. Something to do with rev-parse or something?
For me, the seconds this saves in typing don't outweigh the annoyance of trying to pair with another developer who only uses their own special aliases.
https://github.com/ohmyzsh/ohmyzsh?tab=readme-ov-file
https://kapeli.com/cheat_sheets/Oh-My-Zsh_Git.docset/Content...