I have a local git repository that I've done quite a bit of work on, with a number of commits that I'd like to retain. Unfortunately, while the code is reasonable reusable, I included some sensitive data (database names/user/passwords) in a very early commit. I would like to change the entire history to anonymise the sensitive data, while retaining the general history structure. Is this possible? If so, how?
Asked
Active
Viewed 296 times
2 Answers
5
I think this will help:

tomgi
- 1,422
- 11
- 20
-
Yes. History re-writing is they key. I made a backup repo (just in case), and then ran `git filter-branch --tree-filter 'sed -i "s/sensitive data/clean data/g *' HEAD`, and that removed everything from the whole tree. Thanks for the pointer! – naught101 Jun 12 '12 at 03:42
0
Remove them from the repository, then commit. You then need to squash all the commits from when the files were added to when they were removed. You can see a good explanation about that here which in short suggests using git rebase -i
.

Shahbaz
- 46,337
- 19
- 116
- 182
-
I am aware I can squash commits, but that will remove the history I was talking about. – naught101 Jun 10 '12 at 12:29