私は常にインターフェイス ベースの 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' {} \;"
上部のコードは、奇妙なことに、私のパスワードを含むすべてのファイルを実際に削除しました。