スポンサーリンク

git reset --soft HEAD^で直前のgit commitを取り消す

git reset --soft HEAD^で直前のgit commitを取り消すことができます。
このとき、git addのインデックス登録は残る状態になります。

実際にやってみましょう。
下記のように、新規ファイルを作成します。

 $ mkdir dir002
 $ cd dir002/
 $ touch file001.txt file002.txt
 $ cd ..
 

git statusすると、
 $ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	dir002/

nothing added to commit but untracked files present (use "git add" to track)

git addします。
参考:カレントディレクトリ以下を再帰的にgit addする
 $ git add dir002/
 

git statusすると、

 $ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	new file:   dir002/file001.txt
	new file:   dir002/file002.txt

git commit します。
 $ git commit -m "Tmp commit"
・・・省略・・・
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 dir001/dir002/file001.txt
 create mode 100644 dir001/dir002/file002.txt
 

git statusすると、
 $ git status
On branch master
nothing to commit, working tree clean

ここで、git reset --soft HEAD^を実行します。

 $ git reset --soft HEAD^
 

git statusすると、git commitが取り消されて、git addのインデックス登録は残っているのが確認できます。
 $ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	new file:   dir002/file001.txt
	new file:   dir002/file002.txt

スポンサーリンク

git reset --hard HEAD^で直前のgit commitを取り消す & ワーキングツリーの変更も削除する

git reset --hard HEAD^をすると、直前のgit commitを取り消されると同時に、ワーキングツリーの変更も削除すれるので注意が必要です。

下記のように、git commitします。

 $ git commit -m "Tmp2 commit"
・・・省略・・・
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 dir001/dir002/file001.txt
 create mode 100644 dir001/dir002/file002.txt
 

git statusすると、

 $ git status
On branch master
nothing to commit, working tree clean

ここで、git reset --hard HEAD^を実行します。
 $ git reset --hard HEAD^
HEAD is now at 62d39d6 1st commit

git statusすると、ワーキングツリーの変更も消えているのが確認できます。
 $ git status
On branch master
nothing to commit, working tree clean

dir002ディレクトリが消えていますね。git reset --hardは慎重に行うことが必要ですね。
 $ ls dir002
ls: dir002: No such file or directory

スポンサーリンク