git Add. : He will monitor the status tree of the workspace and use it to submit all changes to the staging area, including file content modification (modified) and new files, but excluding deleted files.
Git add-u: He only monitors files that have been added (i.e., tracked file), and he submits the modified files to staging area. Add-u does not submit new files (untracked file). (git add--update abbreviation)
Git add-a: is a collection of the top two features (the abbreviation for git add--all)
Here is a detailed example of how to better understand (Git version 1.x):
Git init
echo change me > Change-me
echo Delete me > Delete-me
git add change-me delete-me
git commi T-m initial
echo OK >> change-me
rm delete-me
echo Add me > Add-me
git status
# Changed but Not updated:
# modified: change-me
# deleted: delete-me
# untracked files:
# Add-me
git Add.
git status
# changes to BES committed:
# New file: add-me
# modified: change-me
# Changed but not updated:
# deleted: delete-me
git reset
git add-u
git status
# Changes to be committed:
# modified: change-me
# deleted: delete-me
# untracked files:
# add-me
git reset
git add-a
git status
# changes to be committed:
# New file: add-me
# modified: change-me
# deleted: delete-me
Source: http://www.cnblogs.com/skura23/p/5859243.html