git reset 徹底解説|コマンド早見表

目次

git resetとは?基本知識

git resetとは、コミットやファイルの変更を元に戻したり、取り消したりするためのコマンドです。

具体的には、以下のようなことができます。

  • 直前のコミットを取り消す
  • コミットを取り消しつつ変更を残す
  • 特定のコミットまで戻る

git resetを使うことで、間違えてしまったコミットや不要な変更を取り消し、作業を効率化できます。gitを利用する上では必ず覚えておきたい基本コマンドの一つです。

git resetの基本コマンド

git resetは、以下の形式で使用します。

git reset [オプション] [コミットのハッシュ値]

例:直前のコミットを取り消す場合

git reset HEAD^

HEAD^は「現在のコミットの一つ前」を示しており、このコマンドで直前のコミットを取り消して元の状態に戻せます。

git resetの3つのモード

git resetには主に以下の3つのモードがあります。

  • --soft:コミットだけを取り消し、変更をステージングエリアに残す
  • --mixed(デフォルト):コミットを取り消し、変更を作業ディレクトリに残す(ステージング解除)
  • --hard:コミットも変更も完全に取り消し、元の状態に戻す(変更が消えるため注意が必要)

実際の例:

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

# コミットを取り消し、変更をステージングから外す
git reset HEAD^

# コミットも変更内容も完全に削除して戻す
git reset --hard HEAD^

このように、用途に応じてモードを使い分けることがポイントです。

git reset手順と使い方

git resetの手順を整理すると以下のようになります。

  1. 取り消したいコミットを特定する
  2. コミットのハッシュ値を確認する(git logで確認可能)
  3. git resetコマンドで指定のコミットまで戻す

具体例:

# コミット履歴を確認(ハッシュ値を調べる)
git log --oneline

# 特定のコミットまで戻す
git reset コミットのハッシュ値

実行後、現在位置が指定コミットまで戻ります。
取り消したいコミットを選ぶ際は、事前に慎重に確認しましょう。

git resetで取り消す方法

間違ってコミットした際、git resetを使って取り消す方法は以下の通りです。

直前のコミットを取り消したい場合(変更は残す):

git reset HEAD^

コミットも変更も完全に取り消したい場合:

git reset --hard HEAD^

特定のファイルだけステージングを解除したい場合:

git reset HEAD ファイル名

用途に応じてこれらを使い分けましょう。

git resetとrevertの違い

git resetとgit revertはどちらもコミットを取り消すコマンドですが、以下のような違いがあります。

  • git reset:指定コミット以降を完全に削除(履歴が消える)
  • git revert:新たなコミットを作成して変更を「打ち消す」(履歴が残る)

例えば、共有リポジトリで使う場合、履歴を削除してしまうresetよりもrevertの方が安全です。

例:revertの使い方

git revert コミットのハッシュ値

チーム作業では基本的にrevertを使用し、resetは自分のローカルな環境で使うことが推奨されています。

git reset使用時の注意点

git resetを使う際には、以下のような注意点があります。

  • --hardオプションは変更を完全に削除するため、慎重に使用する
  • 一度resetすると取り消したコミットが復元できないケースもある
  • 共有リポジトリにpush済みの場合、resetではなくrevertを推奨

特にgit reset --hardは元に戻せないため、必ずコミット内容を事前に確認して使用しましょう。

git reset便利コマンド集

よく使われる便利なgit resetコマンドをまとめました。

  • 直前のコミットだけを取り消す(変更は残す)
git reset HEAD^
  • 直前のコミットも変更も完全に破棄する
git reset --hard HEAD^
  • 特定ファイルのステージングのみ解除
git reset HEAD ファイル名
  • 指定したコミットまで一気に戻す
git reset --hard コミットのハッシュ値

これらを覚えておくと、作業を効率的に進められます。

git resetコマンド早見表

最後に、git resetのコマンド早見表を一覧でまとめました。

操作内容コマンド
直前のコミットだけ取り消すgit reset HEAD^
コミットを取り消し変更を残すgit reset --soft HEAD^
コミットとステージングを解除git reset HEAD^
コミット・変更を完全に削除git reset --hard HEAD^
特定ファイルをステージ解除git reset HEAD ファイル名
指定コミットまで完全に戻すgit reset --hard コミットのハッシュ値

git resetを使いこなして安全で効率的な開発作業を行いましょう。

未経験からエンジニアへ転職!おすすめの転職サービスはこちら

「未経験だけどエンジニアになりたい…」「IT業界に興味があるけど、どこから始めるべきかわからない…」
そんな方におすすめなのが、プログラミングスクールを活用した転職活動です。
実績豊富なスクールを利用すれば、未経験からでもエンジニアとしての転職がぐっと近づきます!

この記事が気に入ったら
フォローしてね!

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