Home Explore Blog CI



git

2nd chunk of `Documentation/git-rm.adoc`
ec729233fd5b8ccce4bca3294caa260cd823b3a27dd670120000000100000914

`-q`::
`--quiet`::
	`git rm` normally outputs one line (in the form of an `rm` command)
	for each file removed. This option suppresses that output.

`--pathspec-from-file=<file>`::
	Pathspec is passed in _<file>_ instead of  args. If
	_<file>_ is exactly `-` then standard input is used. Pathspec
	elements are separated by _LF_ or _CR_/_LF_. Pathspec elements can be
	quoted as explained for the configuration variable `core.quotePath`
	(see linkgit:git-config[1]). See also `--pathspec-file-nul` and
	global `--literal-pathspecs`.

`--pathspec-file-nul`::
	Only meaningful with `--pathspec-from-file`. Pathspec elements are
	separated with _NUL_ character and all other characters are taken
	literally (including newlines and quotes).


REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM
--------------------------------------------------------
There is no option for `git rm` to remove from the index only
the paths that have disappeared from the filesystem. However,
depending on the use case, there are several ways that can be
done.

Using ``git commit -a''
~~~~~~~~~~~~~~~~~~~~~~~
If you intend that your next commit should record all modifications
of tracked files in the working tree and record all removals of
files that have been removed from the working tree with `rm`
(as opposed to `git rm`), use `git commit -a`, as it will
automatically notice and record all removals.  You can also have a
similar effect without committing by using `git add -u`.

Using ``git add -A''
~~~~~~~~~~~~~~~~~~~~
When accepting a new code drop for a vendor branch, you probably
want to record both the removal of paths and additions of new paths
as well as modifications of existing paths.

Typically you would first remove all tracked files from the working
tree using this command:

----------------
git ls-files -z | xargs -0 rm -f
----------------

and then untar the new code in the working tree. Alternately
you could 'rsync' the changes into the working tree.

After that, the easiest way to record all removals, additions, and
modifications in the working tree is:

----------------
git add -A
----------------

See linkgit:git-add[1].

Other ways
~~~~~~~~~~
If all you really want to do is to remove from the index the files
that are no longer present in the working tree (perhaps because
your working tree is dirty

Title: Git Remove Command Options and Use Cases
Summary
The text describes additional options for the git rm command, including suppressing output and specifying pathspecs from a file, as well as alternative methods for removing files that have disappeared from the filesystem, such as using git commit -a, git add -u, or git add -A.