I've actually started putting these in Anki[1] to memorize, along with python and js syntax. Too early to tell if I'll keep the reviewing habit, but so far it's going well.
For example, to save an abbreviation:
$ abbr undo-unpushed-commit 'git reset --hard HEAD^'
... later ...
Start typing a few chars and it'll suggest the rest:
$ undo-u|npushed-commit
Press the right arrow key to accept the suggestion
$ undo-unpushed-commit|
When you press enter or space, the abbreviation will expand:
$ git reset --hard HEAD^ |
---
There are a lot of other reasons to use fish shell. For example, when you save abbreviations or functions or aliases, they immediately persist and propagate to other shell windows!
Sigh.