スポンサーリンク
git reset --soft HEAD~nで、直前のn個のcommitを取り消す
git reset --soft HEAD~nで、直前のn個のcommitを取り消すことができます。
例えば、下記の2つのcommitをしたとします。
(master)$ touch file001.txt (master)$ git add file001.txt (master +)$ git commit -m "Add file001.txt" (master)$ touch file002.txt (master)$ git add file002.txt (master +)$ git commit -m "Add file002.txt"
直前の2個のcommitを取り消します。
(master)$ git reset --soft HEAD~2
git statusすると、直前の2つのcommitが取り消されているのが確認できます。
(master +)$ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: file001.txt new file: file002.txt
スポンサーリンク
git reset --soft HEAD^は直前の1commitを取り消す
git reset --soft HEAD^は直前の1commitを取り消します。
例えば、下記の2つのcommitをしたとします。
(master)$ echo "test" >>file001.txt (master *)$ git add file001.txt (master +)$ git commit -m "Tmp commit" (master)$ echo "test" >>tmp2.txt (master *)$ git add tmp2.txt (master +)$ git commit -m "tmp 2nd commit"
直前の1commitを取り消します。
(master)$ git reset --soft HEAD^
git statusすると、直前のtmp2.txtの追加のcommitが取り消されているのが確認できます。
(master +)$ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: tmp2.txt
更に、もう一回git reset --soft HEAD^を実行してみます。
(master +)$ git reset --soft HEAD^
git statusすると、更に、直前の1commitが取り消されているのが確認できます。
(master +)$ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: file001.txt modified: tmp2.txt
スポンサーリンク