Git is not easy at all. Also to achieve various needs you needs alias, custom scripts or tools like hub.
I used hub for years for a simple feature but let me explain how works. Basically hub is an alias for git that execute internally but extends native commands with adding new features.
The feature I was using that tool is:
git checkout https://github.com/Mte90/gitapper/pull/4
So as if you know git this creates an error. On hub instead, on the repo where are you (so the original one locally) it will creates a new branch with the content of that pull request locally.
This is very helpful for maintainers that need to review and tests pull requests.
During the time I saw the problem of hub that is not on debian repositories and is not easy to extend.
So I created Gitapper that include that feature and various from my aliases, scripts and needs.
It is another git wrapper that is based on hooks executed before and after the real git command. So is possible to add new parameters to git commands as example or create new commands.
Internally the tool will look in the folder for python or shell scripts, it uses natively other tools that are required to be downloaded (there is another script for that).
This is a simple way to extend git without create new alias or use the gitconfig as you don’t always opportunity to configure to remap them.
The full list of new feature or commands is in the readme that is updated.
PS: the command I use so much is
fork as download automatically your fork and use the GitHub to add a new remote as upstream automatically.