変更した作業を取り消して元に戻したい場合

Git管理上でファイルの変更をしたりうっかり上書きした際に、その変更を元に戻したケースがよくあります。そこで、「git addをする前」「git addをした後でgit commitをする前」「git commitをした後」で取り消し方が違うので、それぞれ解説します。

git addをする前に取り消す

まずは、git addをする前に取り消す方法。

特定の変更ファイルを対象に取り消すコマンド

git checkout 対象ファイル名

特定のディレクトリ以下の変更を再起的に取り消すコマンド

git checkout 対象ディレクトリ名

全ファイル・ディレクトリを対象に取り消すコマンド

git checkout .

git addをした後でgit commitをする前に取り消す

次にgit addをした後でgit commitをする前に取り消す方法です。基本的には、git addをする前と同じように、対象ファイル・対象ディレクトリ・全ての対象ファイルとディレクトリごとに取り消すことができます。

特定の変更ファイルを対象に取り消すコマンド

git reset HEAD 対象ファイル名

特定のディレクトリ以下の変更を再起的に取り消すコマンド

git reset HEAD 対象ディレクトリ名

全ファイル・ディレクトリを対象に取り消すコマンド

git reset HEAD .

git commitをした後に取り消す

最後にgit commitをした後に取り消す方法です。

git上での変更のみ取り消しファイルシステム上のファイルはそのままにする方法

git reset --soft HEAD^

git上での変更取り消しとファイルシステム上でのファイル変更も取り消しする方法

git reset --hard HEAD^

HEAD^は、HEADリビジョンの1つ前まで戻します。 特定のリビジョンまで戻すには、そのリビジョンのハッシュタグを指定します。git log -5 --pretty=onelineで、ハッシュタグの一覧が表示されるので戻したいリビジョンを指定して戻します。

git reset --hard ハッシュタグ