A long time ago before git I've casually run into quilt[1]. Not really immediate but if you don't like git may be nice to use. On IETF[2] there's a quick tutorial too.
There are a few IMHO: magit [1] is a nice piece for Git. And there's vterm, if you wish to use a (usable) term or tmux/screen without leaving the editor, tramp mode [2] for remote files and last but not least ergoemacs [3] if you prefer the CUA style for generic commands (and reduce RSI). Oh, and forgot to mention helm [4] too...
I tried using ZSH. My first experience was using a bunch of plugins like zsh spaceship and having the shell slow to a complete halt.
I then used "stock zsh" and running commands was fine except some autocompletes like git-autocomplete were terribly slow and, for example, did not support `git switch`. This broke my workflow and it was easier to just go back to bash than to figure out how zsh works. I found that autocomplete in zsh is a lot more opaque than in bash. I'm sure there are ways to fix it. My way was to switch to bash.
Actually, maybe it's more the fact that at a prominent tech company:
* zsh is the default shell on a large proportion of servers that have read-only /home, so you can't easily change to your preferred shell
* a training guide that many new developers follows states incorrectly that:
> If you are using Bash and you have the option of using ZSH, you should switch to it. ZSH has additional auto-complete and history features that Bash doesn’t have (but don't worry - those features will not be relevant to this tutorial.)
oh-my-zsh seems to be recommended by a lot of developers in this company, even though:
* the default mechanism to install is curl|sh (there is no Homebrew package) on developer machines which have privileged access to a lot of resources
* installing it via its recommended installation procedure on dev machines would violate company policies, whereas installing bash-completion wouldn't
[1] http://savannah.nongnu.org/projects/quilt
[2] https://tools.ietf.org/doc/quilt/quilt.html