GitのCommitの取り消しや変更を行う方法【主なコマンド一覧】

この記事では、GitのCommitの取り消し方法を紹介します。

関連記事

「ローカルのGitをGitHubでバージョン管理する方法|主なGitコマンド一覧付きガイド」については、こちらで記事にしています。

目次

直前のコミットを「取り消してやり直す」方法

直前のコミットを取り消すが、変更内容はそのまま残すコマンド

  • コミットだけ取り消す(ステージングされた状態に戻る)
  • 変更内容は一切消えない
  • すぐに「正しい作者」「正しいメッセージ」で再コミットできる
git reset --soft HEAD~1

コマンド解説

・resetオプション(3種類)

オプションコミット取り消しステージ作業ツリー
--soft戻す維持(そのまま)維持(そのまま)
--mixed(デフォルト)戻す解除する維持
--hard戻す解除削除(消える)

HEAD~N は「HEAD から N 個前のコミット」

記法意味指す位置
HEAD~0HEAD そのもの今のコミット
HEAD~11 個前一つ前のコミット
HEAD~22 個前二つ前のコミット
HEAD~33 個前三つ前のコミット

オプション:設定変更

コミットの作者を変更したい場合の例

Git は コミット作者 = Git ローカル設定(user.name / user.email) を使います。

・今後のコミットの作者を変更したい場合(現在のリポジトリのみ 反映)

git config user.name "新しい名前"
git config user.email "新しいメールアドレス"

・今後のコミットの作者を変更したい場合(全リポジトリ共通の場合)

git config --global user.name "新しい名前"
git config --global user.email "新しいメールアドレス"

この設定の後に、後述のように再度コミットします。

参考:SourceTreeの場合の同様の設定箇所
設定>詳細
フルネーム、メールアドレスなどを指定できます。

関連記事:SourceTreeとは?

トラブルシューティング:メールアドレスを公開したくない場合の対処法

GitHub は 「公開されない noreply メールアドレス」 を自動で提供しています。
※ 全ユーザーに自動配布される専用メール

例:

12345678+username@users.noreply.github.com

この noreply メールを Git コミットに設定することができます。安全で公式に推奨される方法です。

  • GitHub 上にも本物のアドレスは一切公開されない
  • Git履歴に残るアドレスも匿名になる
  • GitHub の “Contributions” も正常に反映
  • Git の仕様にも完全準拠

GitHub で自分の noreply メールを確認する方法

出典:https://github.com/settings/emails

このメールアドレスを Git に設定することができます。

コミットを再実行

コミットコメントを変更する場合の例

変更されたすべてのファイルを一括ステージングする場合のコマンドの例
(既にステージング済みの場合は不要)

git add .

コミットコメントを変更

git commit -m "新しいメッセージ"

コミットするAuthor(作者)を変更する場合の例

*Git のグローバル設定(user.name / user.email)を変更せずに、このコミットだけ別の作者として記録したい場合に使うオプション
*Author(作者)と Committer(コミッター)は別の項目です。

git commit --author="新しい名前 <新しいメール>" -m "新しいメッセージ"

実際にどう見えるか確認(log 出力例)

git log --pretty=full

・–pretty=full
Author(作者)と Committer(コミッター)をどちらも表示し、コミットメッセージもすべてフルで表示するログフォーマット

pager(less)を終了するには、次のコマンドを実行します。

q

直前のコミットを「完全に消す」(変更も破棄)

注意:変更内容も消える。復元が難しい。

git reset --hard HEAD~1

コミットメッセージ・作者だけ直す(内容はそのまま)

git commit --amend --author="新しい名前 <新しいメール>" -m "新しいメッセージ"

関連記事

「ローカルのGitをGitHubでバージョン管理する方法|主なGitコマンド一覧付きガイド」については、こちらで記事にしています。

参考

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメントする

目次