I thought the line
git checkout .
can revert all changes in the current directory and subdirectory for the local working copy. But I also see this popular form:
git checkout -- .
so if -- (the double dash or also called "bare double dash") is to signal the end of command options, then why is it needed in the above case? The . can never be an option so there shouldn't be any confusion.