アフィリエイト広告を紹介しています
Working Class Hero:泥臭く、スマートに生き抜く。

汗と汚れの染み込む現場も、キーボードを叩く現場も、どちらも知っている。 元ライン工の僕が、ITの世界で見つけた「少しだけ楽に、自分らしく働くための知恵」を置いておきます。

僕が働き方を変えた理由

GitHubのコミットを取り消す方法3選!初心者向けにわかりやすく解説

「間違えてコミットしちゃった!取り消したい…」

GitHubを使い始めると、誰もが一度はぶつかる問題です。

この記事では、GitHubのコミットを取り消す3つの方法を初心者向けにわかりやすく解説します。

太郎
太郎

状況に応じて使い分ければ大丈夫!まずは一番安全な方法から覚えましょう。

この記事でわかること
  • コミットを安全に取り消す3つの方法
  • push前とpush後の対処法の違い
  • VSCodeでの操作方法
  • よくあるミスと対処法

方法1:git revert(push済みでも安全)

迷ったらこれ! push済みのコミットを安全に取り消せる方法です。

git revert は、指定したコミットの変更を「打ち消す」新しいコミットを作成します。履歴が残るので、いつでも元に戻せます。

# 直前のコミットを取り消す
git revert HEAD

# エディタを開かずに実行
git revert HEAD --no-edit
私

revertは「元のコミットを消す」のではなく「逆の変更を加える」だけなので、チーム開発でも安心です。

revertを使うべき場面
  • push済みのコミットを取り消したい
  • チーム開発で安全に取り消したい
  • 履歴を残しておきたい

方法2:git reset –soft(push前のコミットに)

push前のコミットなら、git reset で取り消せます。

# コミットだけ取り消し(変更はステージングに残る)
git reset --soft HEAD~1

–softを使えば、ファイルの変更はそのまま残ります。コミットメッセージを書き直したいときに便利です。

# コミットを取り消してメッセージを修正
git reset --soft HEAD~1
git commit -m "正しいコミットメッセージ"
注意
  • `git reset –hard` を使うと**ファイルの変更も消えます**。基本的に –soft を使いましょう。

方法3:VSCodeで取り消す(GUI操作)

コマンドを使わなくても、VSCodeのGUIで簡単に取り消せます。

1
ソース管理パネルを開く

左サイドバーの「ソース管理」アイコンをクリック

2
コミットを取り消す

「…」メニュー → 「コミット」→ 「直前のコミットを元に戻す(Undo Last Commit)」を選択

太郎
太郎

VSCodeの「Undo Last Commit」は `git reset –soft HEAD~1` と同じ動作です。変更は消えないので安心!


push前とpush後の使い分け

状況 おすすめの方法 理由
push前 git reset –soft コミットだけ取り消してやり直せる
push済み git revert 履歴を残して安全に取り消せる
GUI派 VSCode Undo コマンド不要で簡単
絶対NG
  • push済みのコミットに `git reset` は使わないでください。チームメンバーの作業に影響が出ます。

よくある質問

間違えてresetしてしまった場合

git reflog で操作履歴を確認すれば復元できます。

git reflog
# 復元したい状態のIDを確認
git reset --hard <復元したいID>

複数のコミットを取り消したい

# 直近3つをrevert
git revert HEAD~3..HEAD --no-edit

Git操作をもっと学ぶなら

関連記事
  • [git reset・git revertの詳しい使い方](/blog/3427/)
  • [git stashの使い方・作業を一時保存する方法](/blog/3408/)
  • [git mergeのコンフリクト解決方法](/blog/3410/)
  • [VSCodeのターミナルの使い方](/blog/3406/)

Git・プログラミングを体系的に学ぶなら

独学で限界を感じていませんか?プロのカリキュラムなら最短でスキルが身につきます。

※無料体験・無料カウンセリングあり

まとめ:迷ったらgit revertを使おう

この記事のポイント
  • **push済み** → `git revert` で安全に取り消し
  • **push前** → `git reset –soft` でやり直し
  • **GUI派** → VSCodeの「Undo Last Commit」
  • 困ったら `git reflog` で復元できる

コミットの取り消しは、一度覚えてしまえば怖くありません。まずは git revert だけ覚えておけばOKです!

コメント