はじめに
Gitリポジトリで作業しているときに、最後のコミットを元に戻したい場合があります。幸い、Gitには、作業中のローカルブランチの最新のコミットを指すHEADと呼ばれる特別なポインターがあります。
コミットを元に戻すには、HEADが現在作業中のブランチの前のコミットIDを指すようにする必要があります。
このチュートリアルでは、Gitで最後のコミットを元に戻す方法を説明します。
最後のコミットを元に戻す
次のコマンドを使用して、Gitでの変更を元に戻すことができます:
$ git reset <commit-id>
gitresetコマンドに付随するいくつかの追加の引数があります:
–soft:現在の作業ディレクトリとステージングインデックスが変更されていないときに、HEADを特定のコミットに更新します。
–mixed:HEADを特定のコミットに更新し、現在の作業ディレクトリが変更されていないときに、ステージングインデックスを指定されたコミットに変更します。このオプションは、引数なしでgitresetコマンドを使用する場合のデフォルトの操作です。
–hard:HEADを更新し、現在の作業ディレクトリとステージングインデックスの両方を指定されたコミットに変更します。このオプションを使用する場合、コミットしていないローカルの変更はすべて失われることに注意してください。
ソフトリセット
最後のコミットを元に戻すときに現在の作業ディレクトリとステージングインデックスに加えた変更が失われないようにするには、次のコマンドを実行します。
$ git reset --soft HEAD~1
HEAD〜1は、HEADの前の1つのコミット(最新のコミットの前のコミット)を意味します。
最新のコミットを元に戻す前に:
–softオプションを使用して最新のコミットを元に戻した後:
ハードリセット
現在の作業ディレクトリで行った変更と、コミットされていないローカルファイルを保持したくない場合は、–hardオプションを指定してgitresetコマンドを実行します。
$ git reset --hard HEAD~1
出力:
結論
gitresetコマンドを使用してGitの最後のコミットを元に戻す方法の詳細を確認しました。 Gitを使用する場合、これは本当に強力なコマンドです。
ご不明な点がございましたら、下のセクションにコメントを残してください。