sfw@pro4 ~/a (dev) $ tree
.
├── dir1
│ ├── add
│ ├── modify
│ └── rename_new
└── dir2
├── add
├── modify
└── rename_new
sfw@pro4 ~/a (dev) $ git status -s
D dir1/delete
M dir1/modify
D dir1/rename
D dir2/delete
M dir2/modify
D dir2/rename
?? dir1/add
?? dir1/rename_new
?? dir2/add
?? dir2/rename_new
git add . 和 git add …/dir2
sfw@pro4 ~/a/dir1 (dev) $ git status -s
D delete
M modify
D rename
D ../dir2/delete
M ../dir2/modify
D ../dir2/rename
?? add
?? rename_new
?? ../dir2/add
?? ../dir2/rename_new
sfw@pro4 ~/a/dir1 (dev) $ git add .
sfw@pro4 ~/a/dir1 (dev) $ git status -s
A add
D delete
M modify
R rename -> rename_new
D ../dir2/delete
M ../dir2/modify
D ../dir2/rename
?? ../dir2/add
?? ../dir2/rename_new
sfw@pro4 ~/a/dir1 (dev) $ cd ../../b/dir1
sfw@pro4 ~/b/dir1 (dev) $ git status -s
D delete
M modify
D rename
D ../dir2/delete
M ../dir2/modify
D ../dir2/rename
?? add
?? rename_new
?? ../dir2/add
?? ../dir2/rename_new
sfw@pro4 ~/b/dir1 (dev) $ git add ../dir2
sfw@pro4 ~/b/dir1 (dev) $ git status -s
D delete
M modify
D rename
A ../dir2/add
D ../dir2/delete
M ../dir2/modify
R ../dir2/rename -> ../dir2/rename_new
?? add
?? rename_new
git add -A
sfw@pro4 ~/c/dir1 (dev) $ git status -s
D delete
M modify
D rename
D ../dir2/delete
M ../dir2/modify
D ../dir2/rename
?? add
?? rename_new
?? ../dir2/add
?? ../dir2/rename_new
sfw@pro4 ~/c/dir1 (dev) $ git add -A
sfw@pro4 ~/c/dir1 (dev) $ git status -s
A add
D delete
M modify
R ../dir2/rename -> rename_new
A ../dir2/add
D ../dir2/delete
M ../dir2/modify
R rename -> ../dir2/rename_new
git add -u
sfw@pro4 ~/d/dir1 (dev) $ git status -s
D delete
M modify
D rename
D ../dir2/delete
M ../dir2/modify
D ../dir2/rename
?? add
?? rename_new
?? ../dir2/add
?? ../dir2/rename_new
sfw@pro4 ~/d/dir1 (dev) $ git add -u
sfw@pro4 ~/d/dir1 (dev) $ git status -s
D delete
M modify
D rename
D ../dir2/delete
M ../dir2/modify
D ../dir2/rename
?? add
?? rename_new
?? ../dir2/add
?? ../dir2/rename_new