Como usar o comando “git add .” corretamente? Confira.

Entendendo o comando "git add ."

É 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:

árvore de diretórios
árvore de diretórios

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

comando git add . no diretório raiz do projeto
comando git add . no diretório raiz do projeto

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“.

comando git add . no diretório dir01 que está dentro do diretório raiz do projeto
comando git add . no diretório dir01 que está dentro do diretório raiz do projeto

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.

Deixe um comentário