254

Git で一連のコミットを行いましたが、ユーザー名とユーザーの電子メール プロパティを正しく設定するのを忘れていたことに気付きました (新しいマシン)。これらのコミットを自分のリポジトリにまだプッシュしていないので、そうする前にこれらのコミットを修正するにはどうすればよいですか (マスター ブランチの最新の 3 つのコミットのみ)。

git resetとを見てきgit commit -C <id> --reset-authorましたが、正しい軌道に乗っているとは思いません。

4

8 に答える 8

302

警告: 現在は推奨されておらず、filter-repoが推奨されています。

指先でフィルターブランチの力を持っている場合、リベース/修正は非効率的です:

git filter-branch --env-filter 'if [ "$GIT_AUTHOR_EMAIL" = "incorrect@email" ]; then
     GIT_AUTHOR_EMAIL=correct@email;
     GIT_AUTHOR_NAME="Correct Name";
     GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
     GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; fi' -- --all

(わかりやすくするために複数行に分割していますが、必須ではありません)

意図しないものを変更していないことを確認するために、完了したら必ず結果を調べてください!

于 2011-02-13T03:33:19.823 に答える
2

あなたが探しているのはgit rebase --interactive

特定のコミットにリセットしてから、コミットの追加またはグループ化を変更して履歴をスローできます

ここに説明があります https://web.archive.org/web/20100213104931/http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase -相互の作用

于 2011-02-12T23:16:18.583 に答える