git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Remove all files except a few files, using filter-branch

From
Yi, EungJun <semtlenori@gmail.com>
Date
Sep 18, 2012, 15:01 UTC
Message-ID
<CAFT+Tg-4q0mzD6rdY74WBP-0OM_SaZ_wkCAn+Gz2_eDte2a4Nw@mail.gmail.com>
In-Reply-To
<m24nmxkibw.fsf@igel.home>
> --index-filter "git rm --cached -qr -- . && git reset -q -- filename"
Hmm... I tried as you said, but it seems to lose history.

In the below example, after rewriting there must be two commits for 'b' file but only one exists.

~$ git init filter-branch2
Initialized empty Git repository in
/home/nori/mysrc/test/git/filter-branch2/.git/
~/filter-branch2$ cd filter-branch2
~/filter-branch2$ echo 1 > a
~/filter-branch2$ echo 1 > b
~/filter-branch2$ git add a b
~/filter-branch2$ git commit -m 'first'
[master (root-commit) ae2b5fd] first
 2 files changed, 2 insertions(+)
 create mode 100644 a
 create mode 100644 b
~/filter-branch2$ echo 2 >> b
~/filter-branch2$ git add b
~/filter-branch2$ git commit -m 'second'
[master a32b84e] second
 1 file changed, 1 insertion(+)
~/filter-branch2$ git filter-branch --index-filter "git rm --cached
-qr -- . && git reset -q -- b"
Rewrite a32b84ed7cec5686e43a47195dfa8114f83619f3 (2/2)
Ref 'refs/heads/master' was rewritten
~/filter-branch2$ git log -- b
commit 19611f9eaf412232e237afcc059d0324a862062f
Author: Yi EungJun <semtlenori@gmail.com>
Date:   Tue Sep 18 23:51:53 2012 +0900
    first
Am I doing something wrong?
On Mon, Sep 17, 2012 at 2:06 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
Show 23 quoted lines
> "Yi, EungJun" <semtlenori@gmail.com> writes:
>
>> Hi, all.
>>
>> I want to remove all files except a few files, in the history of my
>> git repository.
>>
>> I tried to do that as follows:
>>
>>     git filter-branch --index-filter "git rm --cached --ignore-unmatch
>> $(git ls-files | grep -v '^filename$' | tr '\n' ' ')"
>
> Try instead first removing all files, then restoring the files you want
> to keep.
>
> --index-filter "git rm --cached -qr -- . && git reset -q -- filename"
>
> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
> "And now for something completely different."
Previous: Andreas SchwabNext: Johannes Sixt
Message 3 of 5 in “Remove all files except a few files, using filter-branch”
  1. Yi, EungJunSep 16, 2012
  2. Andreas SchwabSep 16, 2012
  3. Yi, EungJunSep 18, 2012
  4. Johannes SixtSep 18, 2012
  5. Yi, EungJunSep 18, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.