В чём разница между «Git add -A» и «Git add .»?
git add .  - добавит только новые и измененные, но не исключит удаленные
git add -A (git add --all) - добавит и новые, и измененые, и исключит удаленные
- gitroot
-- dir1
--- subdir11
--- subdir12
-- dir2
--- subdir21
--- subdir22
Находясь в dir2 изменения в dir1 не попадут в индекс, если сделать git add ., но с git add -a попадут.