最近、次のコマンドを使用して、すべてのローカル コミットの作成者、コミッター、および電子メールを置き換えました。
git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "oldname" ];
then
GIT_COMMITTER_NAME="newname";
GIT_COMMITTER_EMAIL="newaddr";
GIT_AUTHOR_NAME="newname";
GIT_AUTHOR_EMAIL="newaddr";
fi
if [ "$GIT_AUTHOR_NAME" = "oldname" ];
then
GIT_COMMITTER_NAME="newname";
GIT_COMMITTER_EMAIL="newaddr";
GIT_AUTHOR_NAME="newname";
GIT_AUTHOR_EMAIL="newaddr";
fi
' -- --all
更新はローカルですぐにわかります (たとえば、私の SourceTree 環境で)。ただし、変更されたリポジトリを GitHub に強制的にプッシュした後は…</p>
git push -f origin master
… 2 つの個別の項目は、コミッターと作成者の更新を頑固に拒否しています: Gemfile.lock ファイルと Views ディレクトリです。
次の点にも注意してください。
このリポジトリでこの種の操作を実行するのはこれが 2 回目です。初めてそのような問題に直面したことはないと思います。
リポジトリで古い名前を検索しています…</p>
$ find . "<oldname">
…多くの結果が得られます。つまり、GitHub とローカルの両方で更新されているように見えるファイルを含め、多くのリポジトリ ファイルに古い名前がまだ潜んでいることを意味します。
私の質問: GitHub の 2 つの「頑固な」ファイルのコミッター/作成者を変更するにはどうすればよいですか?