How can you undo the last git add?

git

Solution

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`.

Problem

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 -- . ``` ...instead of: ``` 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?

Original source

Related problems