Как заменить текст из файлов в истории 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' {} \;"

Код вверху на самом делеудален все файлы с моим паролем как ни странно.

Ответы на вопрос(4)

Ваш ответ на вопрос