しばらくの間gitリポジトリで作業していて、コミットしました。Gitの履歴のメールアドレスを変更する
/**
* Bla bla bla.
*
* @author: Nic <[email protected]>
*/
は、今私は、新しいメールアドレスを作成し、ドキュメントブロックを更新し、新しいものと古いアドレスを交換している:私はこのように、私のプライベートのメールアドレスを含め、私のPHPファイルにドキュメントブロックを使用してきました。しかし、この変更は、ドキュメントを変更した後のコミットにのみ適用されます。
gitの履歴から古いメールアドレスを完全に削除し、すべてのインスタンスを新しいアドレスに置き換えるにはどうすればよいですか?
this blog postを使用してgit filter-branchを使用しようとしましたが、成功しませんでした。
git filter-branch --tree-filter 'git ls-files -z "*.php" |xargs -0 perl -p -i -e "s#[email protected]#[email protected]#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>...]
が、それはその電子メールアドレスの特殊文字(@と。)だろう正規表現をめちゃくちゃにされています。私は、次のような結果を得ますか?それ以外に何が間違っているのか分かりません。どんな助けもありがとう!
これはコミットの作者だけを変更するだけで、ファイルコンテンツの電子メールアドレスを変更する方法を探しています。 – qqx
すでにqqxがコミットのメールアドレスを変更したと判断しました。ファイル内のドキュメントブロックではありません。 –
これは "=="の代わりに "="を使ってうまく動作します。 –