コミットのロールバック

コミットの取り消し

  • 最後のコミットを元に戻し、すべてをステージングエリアに戻します:

     git reset --soft HEAD^
    
  • ファイルの追加とメッセージの変更

     git commit --amend -m "New Message"
    
  • 最後に行った変更を元に戻し、削除します:

     git reset --hard HEAD^
    
  • 前回と同じですが、2つ前のコミットに対するものです:

     git reset --hard HEAD^^
    

プッシュ後にリセットしない

リセットワークフロー

  1. ‘edit_this_file.rb’を再度編集してください。
  2. ステータスのチェック
  3. 間違ったメッセージでの追加とコミット
  4. ログの確認
  5. コミットの修正
  6. ログの確認
  7. ソフトリセット
  8. ログの確認
  9. 更新のためのプル
  10. 変更をプッシュ

コマンド

# Change file edit_this_file.rb
git status
git commit -am "kjkfjkg"
git log
git commit --amend -m "New comment added"
git log
git reset --soft HEAD^
git log
git pull origin master
git push origin master

ノート

  • git revertgit reset
  • Resetはコミットを削除し、revertは変更を削除しますがコミットは残します。
  • リバートのほうが安全です。
# Changed file
git commit -am "bug introduced"
git revert HEAD
# New commit created reverting changes
# Now we want to re apply the reverted commit
git log # take hash from the revert commit
git revert <rev commit hash>
# reverted commit is back (new commit created again)