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?
Anonymise a local git repository?
I think this will help:
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
.
I am aware I can squash commits, but that will remove the history I was talking about. –
Jacquejacquelin
© 2022 - 2024 — McMap. All rights reserved.
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! – Jacquejacquelin