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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> --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@xxxxxxxxx>
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@xxxxxxxxxxxxxx> wrote:
> "Yi, EungJun" <semtlenori@xxxxxxxxx> 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@xxxxxxxxxxxxxx
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
> "And now for something completely different."
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]