Utilizamos o comando git add para monitorar arquivos ou selecionar modificações no diretório de trabalho para a área de preparação, ou seja, pronto a serem comitados.
O comando requer um caminho de um arquivo ou diretório; se é de um diretório, o comando seleciona todos os arquivos do diretório recursivamente.
Ao executar git add . na raiz do diretório de trabalho, por exemplo, você estará selecionando todos os arquivos recursivamente para a área de preparação.
Uma coisa importante a dizer é, que, git add . procura apenas por arquivos novos ou modificados (e não ignorados). Ele não envia ações de remoção de arquivos para a área de preparação.
Por isso vamos olhar duas opções ou flags que o comando git add fornece:
-u
git add -u procura por arquivos modificados e por ações de remoções de arquivos no diretório de trabalho. No entanto, ele não seleciona ou passa a monitorar arquivos novos.
-A
git add -A é um atalho para os dois comandos anteriores. Ele é equivalente para: git add . && git add -u. Portanto, ele seleciona tudo.
Resumo:
git add . seleciona novos e modificados, não seleciona deletados
git add -u seleciona modificados e deletados, não seleciona novos
git add -A seleciona novos, modificados e deletados