For anyone coming here late, slight correction/clarification to @cb-bailey's answer:
A file in the index, which is equivalent to "staging area", is considered tracked
locally.
If a file has been added to the index using git add
, i.e. it is marked as tracked
, and you do not commit it but use git rm --cached
, then it is not a no-op, since it will still remove the file from the index, so that the file ends up being untracked
again. The file still exists in your working tree and can be re-added.
On the other hand, git reset
is used to, well, reset a file or directory to the current branch's HEAD
or a specified commit in your index, while a dedicated mode
argument defines what effect will take place on your local working tree.