According to the manual of git-update-index (https://git-scm.com/docs/git-update-index), --ignore-submodules must be passed before --refresh to take effect. However, a real test shows that -q and --ignore-missing also don't take effect when passed after --refresh. I wonder if --refresh must be passed after all other arguments, and the documentation may need a revision. I also wonder what is the reason that --refresh must be passed after, and can't we make it more flexible?