git reset –mixed、–soft、および –hard の違いは何ですか?

Git Reset Mixed Soft Oyobi Hard No Weiiha Hedesuka



Git では、すべてのコミットが前のコミットにリンクされ、HEAD は作業ブランチの最新のコミットを指します。コミット履歴は、コミットのツリーとして保存されます。ただし、開発者はコミット履歴を変更する必要がある場合があります。この目的のために、「 $ git リセット 」コマンドは、Git リポジトリの履歴を変更し、行われた間違いを修正するために使用されます。

この記事では、git reset –hard、–soft、および –mixed の違いについて簡単に説明します。

git reset –mixed、–soft、および –hard の違いは何ですか?

Git には複数のリセット オプションが用意されています。コミットの処理方法に基づいて、使用可能なすべてのオプションが互いに異なります。それらはすべて Git の履歴を変更し、HEAD を元に戻します。さらに、次のように異なる方法で変更を処理します。







  • -柔らかい ” オプションと一緒に使用 $ git リセット 」 コマンドを使用して、ファイルを保持し、コミットの変更を Git ステージング インデックスに返します。
  • $ git リセット –混合 」は、コミットの変更を元に戻し、作業ディレクトリからファイルを削除せずにステージング インデックスからファイルを削除するために使用されます。
  • -難しい 」オプションと「 $ git リセット 」コマンドは、すべての変更を削除し、ローカル作業ディレクトリから削除するために使用されます。

例を挙げて、「 $ git リセット 」コマンドはさまざまなオプションで機能します!



ステップ 1: 目的の Git リポジトリに移動する

まず、「 CD ' 指図:



$ CD 「C:\行く \t is_repo'





ステップ 2: ファイルの作成

次に、以下のコマンドを実行してファイルを作成します。

$ 触る File4.txt



ステップ 3: ファイルをステージング インデックスに追加する

使用 ' git追加 ” コマンドを使用して、新しく生成されたファイルをステージング インデックスに追加します。

$ git追加 File4.txt

ステップ 4: 変更をコミットする

次に、「 gitコミット ' 指図:

$ gitコミット -m 「File4が追加されました」

ステップ 5: Git ログを確認する

次に、Git ログ履歴をチェックして、追加された最新のコミットを表示します。

$ git ログ

以下の出力では、最後に追加されたすべてのコミットが表示されていることがわかります。 」は最近のコミットを指しています。

ノート: HEAD の現在のポインティング位置をより適切に確認するには、「 git ログ 」コマンドと「 –オンライン ' 国旗:

$ git ログ - オンライン

以下の出力は、コミット メッセージを含むコミット SHA ハッシュのリストを示しています。

ステップ 6: git reset –soft コマンドを使用する

追加された変更を Git リポジトリからステージング インデックスに戻すには、「 git リセット 」コマンドと「– 柔らかい 」オプションを選択し、ポインターを移動する必要がある目的の HEAD 位置を指定します。

$ git リセット - 柔らかい 頭〜 1

ステップ 7: Git のステータスを確認する

ここで、HEAD の復帰位置を確認し、Git リポジトリのステータスを確認します。

$ git ステータス

git リセット –ソフト 」コマンドはコミットの変更を Git ステージング インデックスに返しました。さらに、「 File4.txt 」ファイルは現在 Git ステージング インデックスにあり、コミットする必要があります。

ステップ 8: Git ログを確認する

HEAD の現在の位置を表示するには、指定されたコマンドを「 –オンライン ' オプション:

$ git ログ - オンライン

ここで、HEAD は「 ファイル3 ' 専念:

ステップ 9: git reset を使用する — 混合コマンド

コミットされた変更を元に戻し、作業ディレクトリからファイルを削除せずにステージング領域からファイルを削除するには、「 $ git リセット –混合 」 コマンドとコミットの必要な HEAD 位置:

$ git リセット --混合 頭〜 1

ステップ 10: Git のステータスを確認する

Git リポジトリのステータスを確認して、新しく追加された変更を表示します。

$ git ステータス

指定されたコミットの変更がステージング領域から削除されていることがわかります。ただし、それらは作業領域に配置されます。

ステップ 11: Git ログを確認する

Git リポジトリ参照ログの履歴と SHA ハッシュを確認します。

$ git ログ - オンライン

ステップ 12: git reset を使用する — hard コマンド

追加された変更を Git ローカル作業ディレクトリから削除するには、「 $ git リセット –ハード ' 指図:

$ git リセット - 難しい 頭〜 1

ステップ 13: 元に戻された HEAD ポインターを確認する

HEAD ポインターを確認するには、指定された位置に戻り、「 git ログ ' 指図:

$ git ログ - オンライン

以下の出力は、HEAD が「 File1 が追加されました ' 専念:

ステップ 14: Git のステータスを確認する

追加された変更を表示するには、Git のステータスを確認します。

$ git ステータス

「の追跡および保留中の変更がないことがわかります。 File2.txt ' ファイル。したがって、File2.txt は完全に削除されています。

ステップ 15: リポジトリ コンテンツのリストを確認する

コンテンツのリポジトリ リストを確認するには、「 ls ' 指図:

$ ls

ご覧のとおり、「 File2.txt 」ファイルが現在のディレクトリに存在しません:

git reset –mixed、–soft、および –hard オプションの違いについて説明しました。

結論

git リセット 」コマンドは、変更をリセットし、Git リポジトリの履歴を変更し、間違いを修正するために使用されます。 「 git リセット –ソフト 」コマンドはファイルを保持し、コミットの変更を Git ステージング領域に返します。対照的に、「 git リセット –混合 」コマンドは、コミットの変更を元に戻し、作業ディレクトリからファイルを削除せずに、ステージング インデックスからファイルを削除します。すべての変更を削除して Git 作業領域から削除するには、「 git リセット –ハード 」コマンドが使用できます。この記事では、git reset –mixed、–soft、および –hard の違いを説明しました。