git restore, revert, reset

git restore : Revert a single file

Revert current file modifications to the most recently committed state

git restore filename

Restore the entered file to a specific commit ID point

git restore --source commit_id filename

Unstage a specific file

git restore --staged filename

git revert : Revert a commit

If you want to cancel past commit history, it creates an additional commit that cancels one commit. In other words, it's a command that can erase what was done in a specific commit.

git revert commit_id
git_revert
  • If vim editor appears, modify the commit message and close it

  • When reverting, you can enter multiple commit IDs simultaneously

  • To revert only the most recent commit: enter git revert HEAD

  • Commits newly created by merge commands can also be reverted

git reset : If you want to revert everything

You can completely revert everything to a specific commit (including files in working directory)

git reset --hard commit_id
git_reset
  • However, you must be very careful when using it in collaborative projects

  • Untracked files (files not added with git add) are not deleted and remain

  • git clean command can delete all untracked files (more dangerous..)

  • If you want to review and commit again (while unstaging) instead of completely deleting files during reset, use --soft or --mixed instead of --hard

  • Of course, when you enter git reset, the --mixed option works by default, and only the index (Staging Area) is reset.

Last updated