.gitignore

Como Funciona

É muito comum, você pode ter arquivos que não deseja rastrear no controle de versão do Git. Isso inclui tipos específicos de arquivos que são criados durante o desenvolvimento de software ou que contêm informações sensíveis.

Por exemplo, durante a compilação de um programa, podem ser gerados arquivos executáveis (.exe no Windows) ou arquivos intermediários que são necessários apenas temporariamente. Esses arquivos não são essenciais para o controle de versão do seu projeto e podem ocupar espaço desnecessário no repositório Git.

Além disso, ferramentas e programas frequentemente criam arquivos temporários, como aqueles com extensões .tmp ou .temp, para armazenar informações transitórias que não precisam ser preservadas no histórico de versão.

Por fim, é crucial evitar incluir no controle de versão arquivos que contenham informações sensíveis, como senhas, chaves de API, tokens de acesso ou outros dados confidenciais. Esses arquivos podem comprometer a segurança do seu projeto se forem acessíveis a outras pessoas.

Para ignorar esses arquivos, você precisa criar um arquivo chamado .gitignore no diretório raiz do seu projeto e listar nele os nomes dos arquivos e diretórios que deseja ignorar, um por linha. Em seguida, adicione e faça o commit do arquivo para que ele funcione corretamente.

Quando você adiciona um arquivo ou diretório ao .gitignore, o Git não rastreará mais as alterações nesses arquivos. Isso significa que eles não serão exibidos como "untracked" quando você executar git status, e você não será solicitado a adicioná-los ao commit.

Com isso, um arquivo podem estar em um de três estados (agora adicionando o estado ignored):

  1. tracked (rastreado): um arquivo que já foi preparado ou confirmado;

  2. untracked (não rastreado): um arquivo que não foi preparado nem confirmado; ou

  3. ignored (ignorado): um arquivo que o Git foi forçado a ignorar.

Estrutura

Ignorar arquivos específicos:

arquivo.txt
diretorio/arquivo2.txt

Isso ignora: - o arquivo arquivo.txt e - o arquivo arquivo2.txt dentro do diretório diretorio.

Ignorar todos os arquivos em um diretório:

diretorio/*

Isso ignora todos os arquivos dentro do diretório diretorio, mas não o diretório em si. Subdiretórios dentro de diretorio não serão ignorados, por exemplo.

Ignorar arquivos com uma extensão específica:

*.log

Isso ignora todos os arquivos com a extensão .log.

Ignorar arquivos em todos os diretórios com um nome específico:

*/arquivo.log

Isso ignora todos os arquivos chamados arquivo.log em qualquer subdiretório.

Ignorar um diretório inteiro:

diretorio/

Isso ignora completamente o diretório chamado diretorio, incluindo todos os arquivos e subdiretórios dentro dele.

Esses são apenas alguns exemplos básicos de como estruturar um arquivo .gitignore. Você pode adicionar mais linhas conforme necessário para personalizar quais arquivos e diretórios deseja ignorar no seu repositório Git.

Exemplo de Uso

Verificar os arquivos a serem ignorados:

Antes de criar o arquivo .gitignore, é útil verificar quais arquivos estão atualmente listados no git status e que você deseja ignorar posteriormente. Por exemplo, se você tem arquivos de compilação com a extensão .exe e arquivos temporários com a extensão .tmp que deseja ignorar, execute git status para ver se esses arquivos estão listados como modificados ou não rastreados. O output do git status pode mostrar algo semelhante a:

On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	arquivo1.exe
	arquivo2.tmp

nothing added to commit but untracked files present (use "git add" to track)

Isso mostra que os arquivos arquivo1.exe e arquivo2.tmp estão atualmente untracked. Para que eles não apareçam mais e sejam desconsiderados, você precisa ignorá-los.

Criar o arquivo .gitignore

Você abre o seu editor de texto preferido e cria um novo arquivo chamado .gitignore.

Listar os arquivos a serem ignorados

No arquivo .gitignore, lista os nomes dos arquivos e diretórios que você deseja ignorar, um por linha. Por exemplo, você quer ignorar todos os arquivos de compilação com a extensão .exe e todos os arquivos temporários com a extensão .tmp. O arquivo .gitignore ficaria assim:

*.exe
*.tmp

Salvar o arquivo

Após adicionar as regras de ignorar ao arquivo .gitignore, você salva o arquivo.

Verificar o Status do Repositório

Você usa git status para ver que agora apenas o arquivo .gitignore aparece como untracked. Os arquivos arquivo1.exe e arquivo2 já não aparecem mais.

On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore

nothing added to commit but untracked files present (use "git add" to track)

Adicionar o arquivo .gitignore:

Agora, para salvar as mudanças, adicione o arquivo .gitignore ao controle de versão do Git usando o comando git add .gitignore.

Fazer commit do arquivo .gitignore

Faça o commit com a mensagem apropriada, como git commit -m "Adicionar arquivo .gitignore".

Verificar se está funcionando

Por fim, verifique se o Git está ignorando os arquivos listados no .gitignore executando git status. Você não deve mais ver esses arquivos na lista de arquivos a serem commitados. O output esperado do git status deve mostrar algo semelhante a:

On branch main
nothing to commit, working tree clean

Isso indica que não há alterações pendentes para commit e que os arquivos listados no .gitignore estão sendo ignorados pelo Git.

Ao executar git log, o output deve ser algo parecido com isso:

commit 59430c481a8f4429436dfcd5700ddd373ad77fe9
Author: Cumbuca Dev <cumbucadev@gmail.com>
Date:   Wed Jun 12 22:29:35 2024 +0200

    Adicionar arquivo .gitignore

Recomendações

Para facilitar a criação de um arquivo .gitignore adequado ao seu projeto, recomendamos o uso da ferramenta online gitignore.io. Ela permite que você selecione rapidamente as linguagens de programação, frameworks, ambientes de desenvolvimento e outras especificações do seu projeto, gerando automaticamente um arquivo .gitignore personalizado.

Como a ferramenta funciona

  1. Digitar na Área de Texto: Acesse a ferramenta e digite na área de texto as tecnologias que está usando no seu projeto (ex: python, linux, Visual Studio Code). Conforme você digita, a ferramenta sugere opções relevantes para você selecionar.

  2. Geração Automática: Após selecionar as opções relevantes, a ferramenta gera automaticamente um arquivo .gitignore contendo regras apropriadas para ignorar arquivos específicos dessas tecnologias.

  3. Download: Você pode então baixar o arquivo .gitignore gerado e adicioná-lo ao diretório raiz do seu projeto.

Outra opção também é utilizar como base o repositório de arquivos .gitignore do GitHub, acessível em github.com/github/gitignore.

Visite o repositório e explore os diferentes arquivos .gitignore disponíveis para várias linguagens de programação, frameworks e ferramentas. Escolha o arquivo .gitignore que melhor se adequa ao seu projeto. Você pode copiar o conteúdo do arquivo selecionado e personalizá-lo conforme necessário para atender às especificidades do seu projeto. Adicione o arquivo .gitignore ao diretório raiz do seu projeto.

Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do arquivo .gitignore, consulte a documentação oficial.

Last updated