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 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