Great article, Tapas. I know many people not used to working with version control systems find getting started and remembering the command hard. This is a nice reference for those folks.
I wanted to call your attention to one command you mentioned here that people might misunderstand from how you described it. I am referring to the git rm command.
From the docs (git-scm.com/docs/git-rm), git rm will remove the file(s) from the working tree and the index. This might be what the user is after, but if they want to only undo the changes they staged, they will need to use git checkout (git-scm.com/docs/git-checkout) and reference the commit they want to checkout too. There are also neat flags like --ours and --theirs, which I only learned about recently.