ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

CommitとAuthorを修正する時は--authorではなく--reset-authorを使おう

今日会社で残念な情報でコミットしてしまったゆずです(ふざけて弄ったの忘れてた
gitを使っていて間違ったユーザ情報でコミットしてしまう時ってありますよね

失敗した状態

$ git log --pretty=full

commit b6380fdad0e5e77a3086019d746a49e8648a5bb8
Author: yuzupon <yuzu@example.org>
Commit: yuzupon <yuzu@example.org>

    fuga追加

commit a92ce5f557631ff6c4107feb727c4bdc598f3792
Author: yuzu <yuzu@example.com>
Commit: yuzu <yuzu@example.com>

    init

名前はふざけてyuzuponになってるし
メールアドレスは .comから.orgになってる

今回はこれを直して行きたいと思います

修正手順

configを修正する

まずはgit configを正しい状態に戻しましょう

$ git config --local user.name yuzu
$ git config --local user.email yuzu@example.com

これでconfigは修正されました

確認方法はgit config --local --listで見れます

logを修正

次はgit logを修正します

今回重要なのはここで、git commit --amendだけだと
commitの部分は修正されるのですが、authorが変わらないままになってしまう

$ git log --pretty=full

commit b6380fdad0e5e77a3086019d746a49e8648a5bb8
Author: yuzupon <yuzu@example.org>
Commit: yuzu <yuzu@example.com>

    fuga追加

commit a92ce5f557631ff6c4107feb727c4bdc598f3792
Author: yuzu <yuzu@example.com>
Commit: yuzu <yuzu@example.com>

    init

Google先生に聞いてみると

$ git commit --amend --author="yuzu <yuzu@example.com>"

と実行して修正する記事いっぱい見たのですが
git commit --help見てると--reset-authorというものを見つけた

git commit --amend --reset-author

これを実行することで、一発でcommiterとauthorが修正できる

$ git log --pretty=full

commit b6380fdad0e5e77a3086019d746a49e8648a5bb8
Author: yuzu <yuzu@example.com>
Commit: yuzu <yuzu@example.com>

    fuga追加

commit a92ce5f557631ff6c4107feb727c4bdc598f3792
Author: yuzu <yuzu@example.com>
Commit: yuzu <yuzu@example.com>

    init

まとめ

git configを設定したのに--author=<>が間違ってたら意味ないと思うし
--reset-authorを使っていきたい