Git で HEAD をリセット

Abdul Jabbar 2023年1月30日
  1. Git ヘッドのリセット
  2. Git ヘッドリセット --soft
  3. Git ヘッドリセット --mixed
  4. Git ヘッドリセット --hard
Git で HEAD をリセット

Git は、共有リポジトリで作業している間、多くの面で私たちを助けてくれます。

要件に応じて、新しいブランチを作成したり、ブランチをマージしたり、ブランチを削除したりできるため、Git を使用して多くの機能を実行できます。これらのアクションは、複数の Git コマンドを使用して実行できます。

コマンド git reset は、変更を元に戻すための複合およびマルチソース機能です。このコマンドは、--soft--mixed--hard の 3つの主要なオプションで使用できます。

これらの 3つの引数は、コミットツリー(HEAD)と呼ばれる Git の管理メカニズムに対応しています。

HEAD は、Git チェックアウトブランチが適用されたときの最後のコミットを示します。さらに、Git HEAD は現在のブランチの最後のコミットを指しているとも言えます。

ブランチをチェックアウトするか、新しいブランチを作成すると、Git HEAD は最新のコミットをローカルブランチに転送します。より正確には、HEAD は常に現在のコミットを指すポインターであり、現在のブランチに属している場合と属していない場合があります。

Git ヘッドのリセット

変更を目的のリポジトリに保存したら、git reset コマンドを使用して行われた変更に戻ることでリラックスする必要があります。このコマンドを実行すると、現在のブランチがコマンド実行前の元の場所に戻ります。

オプション HEAD は新しいブランチを解放します。git reset-hard HEAD でできることは、コミットされていないすべての変更を破棄することであると言えます。

git reset コマンドは、他のコマンドと組み合わせて使用​​できます。

  • HEAD 分岐が指すものを転送します。
  • ツリーオブジェクトのように見せるため。
  • 現在の作業フォルダのように見えます。

また、git reset には 2つの異なるカテゴリがあります。

Git ヘッドリセット --soft

この Git コマンドは HEAD をリセットします。ただし、インデックスと作業ディレクトリはまったく影響を受けません。

Git reset コマンドオプションを使用して、ローカルブランチのヘッドをリセットできます。

git reset --soft

Git ヘッドリセット --mixed

git reset --mixed コマンドは、ヘッドの場所を指定されたコミットに変更し、さらに、ステージング領域から変更を削除します。これは、変更を元に戻す例です。

したがって、git reset HEAD コマンドを実行すると、HEAD が最初の親コミットに再び移動します。上記の状況の構文は次のとおりです。

git reset --mixed or $ git reset

Git ヘッドリセット --hard

このコマンドは私たちにとってハードルになる可能性があります。使い方を正確に知っている場合にのみ使用できます。

git reset-hard HEAD を使用して最後のコミットに復元すると、問題になります。幸いなことに、私たちの開発者はその修正のためのより良い解決策を持っています。

git reset --hard は脅威となるコマンドであることに注意してください。コミットされていないすべての変更を壊す可能性があります。最初にそれをチェックし、それを処理する前に Git ステータス出力がクリーンであることを確認する必要があります。

インデックスとステージング領域のすべてのコミットを削除する場合、このコマンドはインデックスに格納されているコミットを削除します(最後のコミットとその前の最後のコミットを元に戻す必要があります)。Git reset コマンドを --hard オプションとともに使用できます。

git reset --hard HEAD~2

このコマンドは、インデックスとステージング領域からコミットを削除します。また、履歴からコミットが削除されます。

著者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

関連記事 - Git Reset