I think the conversation has drifted away from what I am asking / hoping for. I apologize but I do not feel in the position of submitting patches yet. I'll first need to read some code first before that. I'm coming from the angle where currently I can alias just the command (ex: l for log) not considering the 'command with options'. [alias] l = log Currently, the order is as follows: If built-in git command then it wins. If custom git command (script as git-l) then it wins. If alias for git command then it wins. Else throw as unknown command. In short, built-in git command > custom git command > git alias. So I think, the same could also be used for options. Say I want an alias for option --name-status as -s, so I can type: $ git log -s But there is already a -s option and that wins so the built-in option alias wins. However, I think I should be able alias it as --ns. $ git log --ns Thanks, hippy