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 1:
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.
Solution 2:
git commit -a
automatically invokes git add
on all files it knows about. You can use git add
to select what files to commit. Consult the docs for more info: here
Solution 3:
By using the git commit -a switch with the commit command to automatically "add" changes from all known files (i.e. all files that are already listed in the index)