SourceTree

リセットで変更を元に戻す

ファイルの削除作業をしてしまった場合のリセット(コミット前)

ファイルを削除すると、「-」のアイコンで「index.html」が表示される

アイコン「-」:紛失

このままindexに追加してコミットすると完全に削除されてしまうが、
「indexにステージング」してない状態だと、削除したものが簡単に戻すことができる

「作業ツリーにあるファイル」にある「index.html」を右クリックして「ファイルの変更を破棄」を選択する

※「破棄」というのは、ファイルの削除という作業を破棄するということではない。これによって削除を取りやめにするという意味です

「破棄しますか?」と聞かれるので「OK」します

「index.html」を削除という作業がなくなり元に戻りました

コミットまでした場合のリセット(コミットのリセット)

「index.html」ファイルの削除をコミットまでしました

「GIT」といのは、コミットした内容に関しては、バックアップが取れれた状態になっています

具体的には履歴というものが残っていて、こちらからコミットしたところまでだったら、元に戻すことができる

コミットの途中の状態というのは消えてしまうが、コミットの一つ前に戻すというようなことはできます。

そういったこともあるので、コミットは頻繁に行うと良いです。
まとめて作業してしまったりすると、そのまとまった作業が全部消えてしまうことになるので、このあたりもコミット時に気を付けて行うと良い

「index.htmlファイルを削除しました」を間違ってしまったといことで一つ前に戻してみる

履歴をクリックして、履歴が見える状態で間違えたコミットの一つ前のところをクリックする

そして、右クリックして、「現在のブランチをこのコミットまでリセット」というこちらのメニューをクリックしていきます。

このようなウィンドウがひらきます

<やり方として3つの方法があります>

  • Soft:ローカルの変更を全てそのままにする
  • Mixed:作業コピーの変更はそのままにするが、インデックスの状態はリセットす
  • Hard:全ての作業コピーを破棄する
01.Soft:コミット操作だけ取り消す

Softは、コミット操作だけを取り消すモードです。

「1つ前のコミットを選択」→「右クリック」→「現在のブランチをこのコミットまでリセット」の順で進み、
「Soft(ローカルの変更を全てそのままにする)」を選択してOKボタンを押します。
すると、「index.htmlファイルを削除しました」のコミットが消え、「コミットされていない変更があります」に変わりました。

ファイルは戻ってきません。
その代わり、コミットしてない状態に戻す戻るので「コミットされていない変更があります」になり、「Indexにステージしたファイル」に「index.html」がいます。

02.Mixed:コミットとステージングを取り消す

Mixedは、コミット操作だけでなく、ステージングも一緒に取り消すモードです。

「1つ前のコミットを選択」→「右クリック」→「現在のブランチをこのコミットまでリセット」の順で進み、
「Mixed(作業コピーの変更はそのままにするが、インデックスの状態をリセットする)」を選択してOKボタンを押します。
すると、「index.htmlファイルを削除しました」のコミットが消え、「コミットされていない変更があります」に変わりました。

ファイルは戻ってきません。
その代わり、コミットしてない状態に戻す戻るので「コミットされていない変更があります」になり、「作業ツリーのファイル」の方に「index.html」がいます。

03.Hard:全ての作業コピーを破棄する

Hard:コミットもステージングも作業内容もすべて取り消す

コミットもステージングもファイルで行った作業内容もすべて取り消したい。そんなハードな要望に応えてくれるのが、Hardモードです。

「1つ前のコミットを選択」→「右クリック」→「現在のブランチをこのコミットまでリセット」の順で進み、
「Hard:全ての作業コピーを破棄する」を選択してOKボタンを押します。
すると、「危険ですが大丈夫ですか?」と聞かれます
これは何故かというと、このハードというのを行ってしまうと、こおまでに行った作業というのが本当にすべてリセットされるので、大丈夫ですかということです。

ファイルステータスを見ると、ファイルが何も変更されていません」という状態になる。
「index.html」が戻ってきて、先程削除をしたという作業自体が無効になったことになります。

「index.html」を削除という作業がなくなり元に戻りました