Как заменить текст из файлов в истории git?
Я всегда использовал интерфейсный клиент git (smartGit) и поэтому не имел большого опыта работы с консолью git.
Однако теперь я сталкиваюсь с необходимостью замены строки во всех файлах .txt из истории (то есть, не стирая весь файл, а просто подставляя строку). Я нашел следующую команду:
git filter-branch --tree-filter 'git ls-files -z "*.php" |xargs -0 perl -p -i -e "s#(PASSWORD1|PASSWORD2|PASSWORD3)#xXxXxXxXxXx#g"' -- --all
Я попробовал это, и, к сожалению, заметил, что, хотя пароль действительно изменился, все двоичные файлы были повреждены. Изображения и т. Д. Будут повреждены.
Есть ли лучший способ сделать это, чтобы не повредить мои двоичные файлы?
Благодарю.
РЕДАКТИРОВАТЬ:
Я с чем-то перепутал. Фактический код, вызвавший повреждение двоичных файлов:
$ git filter-branch --tree-filter "find . -type f -exec sed -i -e 's/originalpassword/newpassword/g' {} \;"
Код вверху на самом делеудален все файлы с моим паролем как ни странно.