私はしばらくの間gitリポジトリに取り組んでいて、いくつかのコミットを行いました。私は次のように、プライベートメールアドレスを含むphpファイルでドキュメントブロックを使用しています。
/**
* Bla bla bla.
*
* @author: Nic <foo@bar.com>
*/
これで、新しい電子メールアドレスを作成し、ドキュメントブロックを更新して、古いアドレスを新しいアドレスに置き換えました。ただし、この変更は、ドキュメントを変更した後のコミットにのみ適用されます。
gitの履歴から古いメールアドレスを完全に削除し、すべてのインスタンスを新しいアドレスに置き換えるにはどうすればよいですか?
このブログ投稿を使用してgitfilter-branchを使用してみましたが、成功しませんでした。次の結果が得られます。
git filter-branch --tree-filter 'git ls-files -z "*.php" |xargs -0 perl -p -i -e "s#old-email@example.com#new-email@foobar.com#g"' -- --all
Usage: git core\git-filter-branch [--env-filter <command>] [--tree-filter <command>]
[--index-filter <command>] [--parent-filter <command>]
[--msg-filter <command>] [--commit-filter <command>]
[--tag-name-filter <command>] [--subdirectory-filter <directory>]
[--original <namespace>] [-d <directory>] [-f | --force]
[<rev-list options>...]
メールアドレスの特殊文字(@と。)が正規表現を台無しにしている可能性がありますか?それ以外は何が悪いのかわかりませんが、助けていただければ幸いです。