105

I made a mistake and called git add -all, now all files are added. I did not make a commit and push. How can I undo my action?

2
  • 4
    did you try git reset HEAD ?
    – karthikr
    Commented Jan 18, 2015 at 15:02
  • this is not a duplicate since clearly it is stated this is undo git add -all. There are many resources for undoing git add but for -all there are very few. Commented Jul 5, 2023 at 11:40

2 Answers 2

122

It has already been answered several times:

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.

See

5
  • 5
    If it was already answered several times, the correct course of action would be to vote to mark as duplicate, and not answer the question. Commented Jan 18, 2015 at 15:04
  • @SecondRikudo That's what I did, look at my comment at the top. The reason I posted is to provide more than one answer link. Commented Jan 18, 2015 at 15:04
  • 4
    Emphasizing the and not answer the question part. The idea is that if someone searches Google for this problem, they'd find the canonical with the best answer, and not one of the many duplicates asked. By answering these questions you're giving them more visibility. Commented Jan 18, 2015 at 15:05
  • I did this reset and it said it unstaged them but they're still in the index because if I a git status it shows them marked as modified still. How do I COMPLETELY get rid of changes bot added and committed locally? Commented Oct 16, 2015 at 2:37
  • I searched and couldn't find the many answers Commented Jul 5, 2023 at 11:41
14

To reset specific files you can use: git reset -- <file_a> <file_b> or to reset all your changes you can use git reset.

Not the answer you're looking for? Browse other questions tagged or ask your own question.