1. ホーム
  2. git

[解決済み] 過去のすべてのコミットで名前と苗字を変更することはできますか?

2022-08-16 23:16:58

質問

すべてのコミットで名前、苗字、電子メールを変更したいのですが、可能でしょうか?

どのように解決するのですか?

使用方法 git-filter-branch .

git filter-branch --commit-filter 'if [ "$GIT_AUTHOR_NAME" = "Josh Lee" ];
  then export GIT_AUTHOR_NAME="Hobo Bob"; export [email protected];
  fi; git commit-tree "$@"'

これは作者にのみ影響し、コミッターには影響しません(ほとんどのコミットでは作者と同じになります)。もしこれらの項目も書き換えたい場合は GIT_COMMITTER_NAMEGIT_COMMITTER_EMAIL という変数があります。

標準警告 が適用され、まだ共有されていない歴史にのみ適用されます。

2018年6月更新

マニュアルに解答が掲載されました、使用する --env-filter を使った解決策を例として挙げています。 https://git-scm.com/docs/git-filter-branch#_examples :

git filter-branch --env-filter '
    if test "$GIT_AUTHOR_EMAIL" = "root@localhost"
    then
        [email protected]
    fi
    if test "$GIT_COMMITTER_EMAIL" = "root@localhost"
    then
        [email protected]
    fi
' -- --all