【Git】git reset の使い方

こんにちは!CODE CLUB965のKです!

今回はGitにおける「git reset」について書こうと思います。

前回、プッシュを取り消す方法として「git revert」について書きました。
取り消す方法としては、「git reset」もあることを説明しました。

まだ読んでいない方は読んでみて下さい。

git resetとは?

git resetは「コミットした内容を取り消す」ためのコマンドです。

なので、間違ってコミットしてしまった内容を取り消したい場合などに使うコマンドです。

git resetの使い方

使い方の例を紹介します。

まずはコミットのログを確認しましょう。

git log

「git log」コマンドを打つことでGitのログを確認することができます。

コマンドを叩くと以下のようにログを確認できます。

commit a454546bfgy67745fwgdf3afh5nw63dc
Merge: xxxxxxxxxxxxxxxxxx
Author: xxxxxxxxxxxxxxxxxxxxxxxxxx
Date:   xxxxxxxxxxxxxxxxxxxx
 
    xxxxxxxxxxxxxxxxxxxxxxxx
 
    xxxxxxxxxxxxxxxxxx

確認できたら「git reset」で取り消しましょう。

git reset --hard a454546bfgy67745fwgdf3afh5nw63dc

これで指定したコミットIDのコミット内容は取り消すことができます。

ちなみに「git reset」コマンドのオプションの「--hard」についても簡単に説明します。

git reset のオプション

よく使うオプションには「--soft」と「--hard」があります。

それぞれみていきましょう。

「--hard」

このオプションはコミット内容を全て取り消す場合に使用します。

コミット内容及びステージングへの移動も取り消す場合は「--hard」を指定しましょう。

// コミットIDを指定して取り消す
git reset --hard コミットID
 
// 直前のコミットを取り消す場合
git reset --hard HEAD^

直前のコミットを取り消したい場合は、コミットIDでなく「HEAD^」を使うと便利です。

「--soft」

「--soft」は、コミットのみを取り消したい場合に使用します。

「--hard」との違いは、コミットのみを取り消すかどうかの違いです。

// コミットIDを指定して取り消す
git reset --soft コミットID
 
// 直前のコミットを取り消す場合
git reset --soft HEAD^

最後に

今回は「git reset」について書きました。

前回の記事でも言いましたが、プッシュした内容を取り消す場合、「git revert」は履歴が残るのに対して、「git reset」は履歴を残しません。(こっそり消すこともできます。笑)
なので、チーム開発などをしている場合は、履歴が残る「git revert」を使用する方がいいと思います。
git resetを闇雲に使うと思わぬ事故が起きかねませんので。

ただ個人開発などしている場合は、git resetを使って問題ないと思います。

その辺りの違いを理解した上で使うようにしましょう!

それでは、また!

Follow me!