Remove all files except a few files, using filter-branch
- From
Yi, EungJun <semtlenori@gmail.com>
- Date
- Sep 16, 2012, 16:28 UTC
- Message-ID
- <CAFT+Tg_ipyPgNQxx8XsXySzmA3YM3mKe1gB5GyTNqN++gdphnQ@mail.gmail.com>
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' ' ')"
But this does not work well if there is a file whose name is not encoded in us-ascii or includes parenthesis. git-filter-branch is great to remove some files in my repository, but not good enough to remove all except only a few.
Does anyone know the better way?