git add取り消し方法
git init直後のgit addの取り消し
全てのファイルを取り消したい場合
git rm --cached -r .
特定のファイルを取り消す場合
git rm --cached -r file_name
2回目以降のgit addの取り消し
全てのファイルを取り消したい場合
git reset HEAD
特定のファイルを取り消す場合
git reset HEAD file_name
git commit取り消し方法
直前のcommitをなかったことにする場合
git reset --soft HEAD^
commitを上書きする場合
コミットメッセージを変更したい場合などに使う
git commit --amend
git push取り消し方法
git reset(履歴を残さず修正)
commit,add,ソースの変更も一緒に取り消す場合
$ git reset --hard HEAD^
ローカルでの変更等は残して、git pushだけ取り消したいという場合
$ git reset --soft HEAD^
注意点⚠️
git resetの後に、修正した内容をpushすると、以前のcommitとコンフリクトしてエラーとなり、pushすることができません。その時は「-f」オプションをつけて強制的にpushする必要があります。
$ git push -f origin HEAD
また、過去の履歴を書き換えるので、チーム開発時にコンフリクトが発生する可能性がある。
git revert (履歴を残して修正)
変更を取り消すのではなく、履歴を残すため変更を打ち消す場合
git resetと違い、過去の履歴を書き換えることがないので安全
$ git revert HEAD
注意点⚠️
git revertは安全な取り消し方法だが、不要な履歴が増えるため、履歴が見にくくなるのでチーム開発時は注意が必要