■リセット
コミットのやり直し、以前の状態に戻すと言った時に使えそうです。
とりあえず色々試してみたのでまとめてみます。

●準備
▲その1
前回の状態から色々変更、コミットを行います。
html5.htmlの中身を変更し、3回目のコミットを行います
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=yes">
    <title>HTML5テスト</title>
  </head>
  <body>
    <h1>ボタンのテスト</h1>
    <div>
       <button onclick="alert('クリックされました!')">
          クリックしてね
       </button>
       <button onclick="alert('OK!')">
          クリックしよう
       </button>
       <button onclick="alert('OK')">  ※これを追加
          Click
       </button>
    </div>
  </body>
</html>
※最後のClickボタンを追加しました。
ここでコミット

▲その2
html5.htmlの中身を変更する※コミットはしない
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=yes">
    <title>HTML5テスト</title>
  </head>
  <body>
    <h1>ボタンのテスト</h1>
    <div>
       <button onclick="alert('クリックされました!')">
          クリックしてね
       </button>
       <button onclick="alert('OK!')">
          クリックしよう
       </button>
       <button onclick="alert('OK')">
          Click
       </button>
       <button onclick="alert('OK2')">
          Click2
       </button>
    </div>
  </body>
</html>
※さらにボタンClick2を追加しました。
▲その3
ファイルを1個追加する(html5_3.html)中身はhtml5_2.htmlと同じ
さらにGitへ追加する(html5_3.htmlを右クリック)

●これで3回目のコミットが終わってからファイルを1箇所訂正し、
 さらに1つファイルを追加した状態になります。
  ※1箇所訂正した分と1つのファイルを追加分に関してはコミットしていません。
  ログはこんな感じになります。


2回目のコミット
ファイル変更(ボタン追加)
3回目のコミット
ファイル変更(ボタン追加)
ファイル追加
と行ったので3回目のコミットの後に変更、ファイルが追加されています。

●これからリセット実行


●2回目のコミットに戻します。ここからがポイントでリセットの種類によって動作が異なります。

------------------------------------------------------------------------------------------------------------------------------------------

▲Softでリセットした場合

Softでリセットした場合。3回目のコミットが無くなります。追加されたファイルは追加されたままになっています。
ファイルの状態はコミットしていない分の変更もそのままです。(リセットする前と同じ状態)

------------------------------------------------------------------------------------------------------------------------------------------

▲Mixedでリセットした場合

Mixedでリセットした場合。3回目のコミットが無くなります。追加されたファイルが無くなっています。が、フォルダには存在しています。
ファイルの状態はコミットしていない分の変更もそのままです。(リセットする前と同じ状態)

------------------------------------------------------------------------------------------------------------------------------------------

▲Hardでリセットした場合


Hardでリセットした場合。3回目のコミットが無くなります。追加されたファイルが無くなっており、フォルダからも無くなっています(削除されています)
ファイルの状態は2回目のコミットをしている状態になります。(変更する前に戻っています)

------------------------------------------------------------------------------------------------------------------------------------------
実際にリセットをしてみた所以上のようになりました。

●Hard
フォルダの内容を含めてコミットした時点に戻ります。(フォルダの中身が変更されます)

●Mixed
コミットが取り消されるだけでフォルダの中身はそのまま。ただしGitに追加したファイルは削除されます。

●Soft
Mixedと同じで違う点はGitに追加したファイルがそのまま追加されたままになっています。

・コミットを取り消したい時はMixed又はSoft
・以前のコミットの状態に戻したい時はHard

Gitのファイル管理はコミットとは別に管理していると考えた方がいいのかな?
コミットの取り消しと以前の状態に戻す事がリセットから出来るので注意が必要そうです。

トップへ戻る