Como usar o comando “git add .” corretamente? Confira.
É muito comum nas publicações e tutoriais sobre versionamento de código, definir que o comando “git add .” serve para adicionar todas as mudanças (novos arquivos e/ou arquivos modificados) na “área de staging” preparando-os para serem incluídos no próximo “commit“. Mas, essa afirmação é verdadeira? Está totalmente correta? Não, ela não está totalmente correta, e é o que discutiremos nesse artigo.
Contextualizando: “Git é um sistema de controle de versões rápido, escalável e distribuído” e o comando “git add” serve para adicionar novos arquivos e ou arquivos modificados, preparando-os para serem incluídos no próximo “commit“, que irá registrar um instantâneo das mudanças preparadas no repositório local, gerando um ponto de salvamento no histórico do projeto.
Nesse artigo abordaremos apenas a forma simples do comando “git add“, não tratando outras opções do comando, como “–all“, nem mesmo arquivos/diretórios incluídos no arquivo “.gitignore“.
O comando “git add” pode ser usado, basicamente de duas formas:
- git add nome_arquivo.ext – nesse caso o arquivo passado ao comando será adicionado na “área de staging” e será incluído no próximo “commit“. Nessa forma os caracteres curingas: interrogação “?” e asterisco “*“, poderão ser usados. Onde “?” aceita qualquer caractere na posição em que ele foi digitado e o “*” aceita qualquer conjunto de caracteres na posição em que foi digitado, incluindo um conjunto vazio. Dessa forma o comando “git add *.py” adicionará na “área de staging” todos os arquivos com a extensão “.py“.
- git add nome_diretorio – nesse caso o diretório (pasta) passado ao comando, e todo o seu conteúdo (de forma recursiva), será adicionado na “área de staging” e será incluído no próximo “commit“. E aqui está o cerne da nossa questão. No Git, assim como na maioria dos sistemas operacionais o ponto “.” e o ponto ponto “..” são usados como referências relativas ao diretório atual. Onde o ponto “.” representa o diretório atual e o ponto ponto “..” representa o diretório pai, ou seja, o diretório que contém o diretório atual. Assim, quando usamos o comando “git add .” estamos pedindo para o Git adicionar todos os arquivo (de forma recursiva) da pasta atual.
Portanto, podemos concluir que o comando “git add .” só irá adicionar “todas as mudanças” na “área de staging” caso o comando seja digitado no diretório “raiz” do projeto, caso contrário não. Vamos ver um exemplo para facilitar o entendimento. Considere a seguinte árvore de diretórios de um determinado projeto que usa o Git como sistema de controle de versões:

Se o comando “git add .” for digitado no diretório raiz desse projeto, todos os arquivos serão adicionados na “área de staging“.

Entretanto, se você estiver em outro diretório do projeto, por exemplo no diretório “dir01” só os arquivos contidos a partir desse diretório (“arq0101.txt“, “arq0102.txt“, “arq010101.txt” e “arq010102.txt“) serão adicionados na “área de staging“.

Você sabia dessa peculiaridade do comando “git add .“? Deixe o seu comentário.
Referências Bibliográficas:
GIT. git Documentation. Git SCM, [s.d.] Disponível em: https://git-scm.com/docs/git/pt_BR. Acesso em: 19/12/2025.
GIT. git Documentation. Git SCM, [s.d.] Disponível em: https://git-scm.com/docs/git-add/pt_BR. Acesso em: 19/12/2025.