Documentation: filter-branch: show --ignore-unmatch in main index-filter example
Rearrange the example usage of git filter-branch --index-filter 'git rm --cached ...' so that --ignore-unmatch is in the main example block. People keep stumbling over the (lack of this) option to the point where it is a FAQ, so we would want to expose the most common usage where it stands out. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
2464456a6a
commit
3bc427e013
@ -91,7 +91,9 @@ OPTIONS
|
|||||||
--index-filter <command>::
|
--index-filter <command>::
|
||||||
This is the filter for rewriting the index. It is similar to the
|
This is the filter for rewriting the index. It is similar to the
|
||||||
tree filter but does not check out the tree, which makes it much
|
tree filter but does not check out the tree, which makes it much
|
||||||
faster. For hairy cases, see linkgit:git-update-index[1].
|
faster. Frequently used with `git rm \--cached
|
||||||
|
\--ignore-unmatch ...`, see EXAMPLES below. For hairy
|
||||||
|
cases, see linkgit:git-update-index[1].
|
||||||
|
|
||||||
--parent-filter <command>::
|
--parent-filter <command>::
|
||||||
This is the filter for rewriting the commit's parent list.
|
This is the filter for rewriting the commit's parent list.
|
||||||
@ -204,19 +206,18 @@ However, if the file is absent from the tree of some commit,
|
|||||||
a simple `rm filename` will fail for that tree and commit.
|
a simple `rm filename` will fail for that tree and commit.
|
||||||
Thus you may instead want to use `rm -f filename` as the script.
|
Thus you may instead want to use `rm -f filename` as the script.
|
||||||
|
|
||||||
A significantly faster version:
|
Using `\--index-filter` with 'git-rm' yields a significantly faster
|
||||||
|
version. Like with using `rm filename`, `git rm --cached filename`
|
||||||
|
will fail if the file is absent from the tree of a commit. If you
|
||||||
|
want to "completely forget" a file, it does not matter when it entered
|
||||||
|
history, so we also add `\--ignore-unmatch`:
|
||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
git filter-branch --index-filter 'git rm --cached filename' HEAD
|
git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
Now, you will get the rewritten history saved in HEAD.
|
Now, you will get the rewritten history saved in HEAD.
|
||||||
|
|
||||||
As with using `rm filename`, `git rm --cached filename` will fail
|
|
||||||
if the file is absent from the tree of a commit. If it is not important
|
|
||||||
whether the file is already absent from the tree, you can use
|
|
||||||
`git rm --cached --ignore-unmatch filename` instead.
|
|
||||||
|
|
||||||
To rewrite the repository to look as if `foodir/` had been its project
|
To rewrite the repository to look as if `foodir/` had been its project
|
||||||
root, and discard all other history:
|
root, and discard all other history:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user