Search code examples
version-controlgit-commitgit-addgit

git add . vs git commit -a


What's the difference between:

  • git add .
  • git commit -a

Should I be doing both, or is that redundant?


Solution

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