git add . vs git commit -a

Yarin picture Yarin · Aug 22, 2010 · Viewed 54.2k times · Source

What's the difference between:

  • git add .
  • git commit -a

Should I be doing both, or is that redundant?

Answer

CB Bailey picture CB Bailey · Aug 22, 2010

git commit -a means almost[*] the same thing as git add -u && git commit.

It's not the same as git add . as this would add untracked files that aren't being ignored, git add -u only stages changes (including deletions) to already tracked files.

[*] There's a subtle difference if you're not at the root directory of your repository. git add -u stages updates to files in the current directory and below, it's equivalent to git add -u . whereas git commit -a stages and commits changes to all tracked files.