Thread (5 messages) flat view 5 messages, 2 authors, 2016-08-20

git rm --cached should be git rm --cache or git rm --stage

From: Zenaan Harkness <hidden>
Date: 2016-08-20 08:55:19

  Please CC me :)


From man git-rm:

--cached
  Use this option to unstage and remove paths only from the index.
  Working tree files, whether modified or not, will be left alone.


This wording is unclear and dangerous, and ought be cleaned up somehow.

Probably also the option name should change.

See here for examples of community self-help compensating for git-rm man
page's particularly bad wording:
http://stackoverflow.com/questions/6919121/why-are-there-2-ways-to-unstage-a-file-in-git

I suggest:
 - change "--cached" to "--cache" at the least (allow both)

 - probably deprecate --cached and add "--stage" to replace it

 - perhaps change the wording in the man page above to something similar
   as on the stackoverflow page above,
   e.g.:
   "Removes a file from the index. In the case where the file is already
   in the repo, git rm --cached will remove the file from the index,
   leaving it in the working directory and a commit will now remove it
   from the repo as well. Basically, after the commit, you would have
   unversioned the file and kept a local copy."

   or perhaps something like:
   "does not unstage a file, it actually stages the removal of the
   file(s) from the repo (assuming it was already committed before) but
   leaves the file in your working tree (leaving you with an untracked
   file)"


The git "stage" is a primary concept, and a primary noun (one reason
many of us have come to appreciate git), and git's cmd line options and
help docs ought reflect this.

Thanks,
Zenaan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help