Is it possible to unstage the last staged (not committed) change in git? Suppose there were a lot of files in the current branch, some staged, some not. At some point, some foolish programmer accidentally executed:
git add -- .
git checkout -- .
Can this programmer now unstage his last changes with some magical git command? Or should he have committed before experimenting in the first place?
This question is tagged with
~ Asked on 2012-08-26 17:21:05
You can use
git reset. This will 'unstage' all the files you've added after your last commit.
If you want to unstage only some files, use
git reset -- <file 1> <file 2> <file n>.
Also it's possible to unstage some of the changes in files by using
git reset -p.
~ Answered on 2012-08-26 17:59:35
You cannot undo the latest git add, but you can undo all
adds since the last commit.
git reset without a commit argument resets the index (unstages staged changes):
~ Answered on 2012-08-26 17:39:25