Well, you can understand the data-structures and still not like git's interface. The data structures or your familiarity with the git internals don't change the fact that the CLI is annoyingly inconsistent. Learning more of internals won't save you from memorising which variation of the option is being used this time. For example:
git remote add/rename/remove
git add/mv/rm
git tag <name>/?/-d
git branch <name>/-m/-d