Skip to content

Commit

Permalink
Documentation: filter-branch: show --ignore-unmatch in main index-fil…
Browse files Browse the repository at this point in the history
…ter 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>
  • Loading branch information
Thomas Rast authored and Junio C Hamano committed Mar 12, 2009
1 parent 2464456 commit 3bc427e
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions Documentation/git-filter-branch.txt
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ OPTIONS
--index-filter <command>::
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
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>::
This is the filter for rewriting the commit's parent list.
Expand Down Expand Up @@ -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.
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.

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
root, and discard all other history:

Expand Down

0 comments on commit 3bc427e

Please sign in to comment.