Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reset all changes after last commit in git

How can I undo every change made to my directory after the last commit, including deleting added files, resetting modified files, and adding back deleted files?

like image 230
Dogbert Avatar asked Jan 07 '11 21:01

Dogbert


People also ask

How do I completely reset git?

To hard reset files to HEAD on Git, use the “git reset” command with the “–hard” option and specify the HEAD. The purpose of the “git reset” command is to move the current HEAD to the commit specified (in this case, the HEAD itself, one commit before HEAD and so on).


2 Answers

First, reset any changes

This will undo any changes you've made to tracked files and restore deleted files:

git reset HEAD --hard 

Second, remove new files

This will delete any new files that were added since the last commit:

git clean -fd 

Files that are not tracked due to .gitignore are preserved; they will not be removed

Warning: using -x instead of -fd would delete ignored files. You probably don't want to do this.

like image 73
Benjamin Bannier Avatar answered Sep 21 '22 12:09

Benjamin Bannier


How can I undo every change made to my directory after the last commit, including deleting added files, resetting modified files, and adding back deleted files?

  1. You can undo changes to tracked files with:

    git reset HEAD --hard 
  2. You can remove untracked files with:

    git clean -f 
  3. You can remove untracked files and directories with:

    git clean -fd 

    but you can't undo change to untracked files.

  4. You can remove ignored and untracked files and directories

    git clean -fdx 

    but you can't undo change to ignored files.

You can also set clean.requireForce to false:

git config --global --add clean.requireForce false 

to avoid using -f (--force) when you use git clean.

like image 33
Ortomala Lokni Avatar answered Sep 20 '22 12:09

Ortomala Lokni