Share via


Ignorar alterações de arquivo com o Git

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

O Git não deve rastrear todos os arquivos do seu projeto. Arquivos temporários do seu ambiente de desenvolvimento, saídas de teste e logs são exemplos de arquivos que provavelmente não precisam ser rastreados.

Você pode usar vários mecanismos para que o Git saiba quais arquivos em seu projeto não devem ser rastreados e para garantir que o Git não relate alterações nesses arquivos. Para arquivos que o Git não rastreia, você pode usar um .gitignore arquivo ou exclude . Para arquivos que o Git rastreia, você pode dizer ao Git para parar de rastreá-los e ignorar as alterações.

Neste artigo, vai aprender a:

  • Ignore as alterações em arquivos não rastreados usando um .gitignore arquivo.
  • Ignore as alterações em arquivos não rastreados usando um exclude arquivo.
  • Pare de rastrear um arquivo e ignore as alterações usando o git update-index comando.
  • Pare de rastrear um arquivo e ignore as alterações usando o git rm comando.

Usar um arquivo .gitignore

Você pode dizer ao Git para não rastrear determinados arquivos em seu projeto adicionando e configurando um arquivo .gitignore . As entradas num .gitignore ficheiro aplicam-se apenas a ficheiros não controlados. Eles não impedem que o Git relate alterações em arquivos rastreados. Arquivos rastreados são arquivos que foram confirmados e existem no último instantâneo do Git.

Cada linha em um .gitignore arquivo especifica um padrão de pesquisa de arquivo relativo ao caminho do .gitignore arquivo. A sintaxe .gitignore é flexível e suporta o uso de curingas para especificar arquivos individuais ou múltiplos por nome, extensão e caminho. O Git faz a correspondência entre .gitignore padrões de pesquisa e os arquivos em seu projeto para determinar quais arquivos devem ser ignorados.

Normalmente, você adiciona um .gitignore arquivo à pasta raiz do seu projeto. No entanto, você pode adicionar um .gitignore arquivo a qualquer pasta do projeto para que o Git saiba quais arquivos ignorar dentro dessa pasta e suas subpastas em qualquer profundidade aninhada. Para vários .gitignore arquivos, os padrões de pesquisa de arquivo que um .gitignore arquivo especifica dentro de uma pasta têm precedência sobre os padrões que um .gitignore arquivo especifica dentro de uma pasta pai.

Você pode criar manualmente um .gitignore arquivo e adicionar entradas de padrão de arquivo a ele. Ou você pode economizar tempo baixando um .gitignore modelo para seu ambiente de desenvolvimento do repositório gitignore do GitHub. Um dos benefícios de usar um .gitignore arquivo é que você pode confirmar alterações e compartilhá-lo com outras pessoas.

Nota

O Visual Studio cria automaticamente um .gitignore arquivo para o ambiente de desenvolvimento do Visual Studio quando você cria um repositório Git.

O Visual Studio 2022 fornece uma experiência de controle de versão do Git por meio do menu Git, Alterações do Git e menus de atalho no Gerenciador de Soluções. O Visual Studio 2019 versão 16.8 também oferece a interface de usuário do Team Explorer Git. Para obter mais informações, consulte a guia Visual Studio 2019 - Team Explorer .

Na janela Alterações do Git, clique com o botão direito do mouse em qualquer arquivo alterado que você deseja que o Git ignore e selecione Ignorar este item local ou Ignorar esta extensão. Essas opções de menu não existem para arquivos rastreados.

Captura de tela das opções do menu de contexto para arquivos alterados na janela Alterações do Git no Visual Studio.

A opção Ignorar este item local adiciona uma nova entrada ao .gitignore arquivo e remove o arquivo selecionado da lista de arquivos alterados.

A opção Ignorar esta extensão adiciona uma nova entrada ao .gitignore ficheiro e remove todos os ficheiros com a mesma extensão que o ficheiro selecionado da lista de ficheiros alterados.

Qualquer uma das opções cria um .gitignore arquivo se ele ainda não existir na pasta raiz do seu repositório e adiciona uma entrada a ele.

Editar um arquivo gitignore

Cada entrada no .gitignore arquivo é: um padrão de pesquisa de arquivo que especifica quais arquivos devem ser ignorados, um comentário que começa com um sinal numérico (#) ou uma linha em branco (para legibilidade). A .gitignore sintaxe é flexível e suporta o uso de curingas para especificar arquivos individuais ou múltiplos por nome, extensão e caminho. Todos os caminhos para padrões de pesquisa de arquivo são relativos ao .gitignore arquivo.

Aqui estão alguns exemplos de padrões comuns de pesquisa de arquivos:

# Ignore all files with the specified name.
# Scope is all repo folders.
config.json

# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json

# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json

# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile

# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile

# Ignore all files in the 'logs' subfolder.
/logs/

Assim que você modifica um .gitignore arquivo, o Git atualiza a lista de arquivos que ele ignora.

Nota

Os usuários do Windows devem usar uma barra (/) como separador de caminho em um .gitignore arquivo, em vez de usar uma barra invertida (\). Todos os usuários devem adicionar uma barra à direita ao especificar uma pasta.

Usar um arquivo .gitignore global

Você pode designar um .gitignore arquivo como um arquivo de ignorar global que se aplica a todos os repositórios Git locais. Para fazer isso, use o git config comando da seguinte maneira:

git config core.excludesfile <gitignore file path>

Um arquivo global .gitignore ajuda a garantir que o Git não confirme determinados tipos de arquivo, como binários compilados, em nenhum repositório local. Os padrões de pesquisa de arquivo em um arquivo específico .gitignore do repositório têm precedência sobre os padrões em um arquivo global .gitignore .

Usar um arquivo de exclusão

Você também pode adicionar entradas para padrões de pesquisa de arquivo ao exclude arquivo na .git/info/ pasta do seu repositório local. O exclude arquivo permite que o Git saiba quais arquivos não rastreados devem ser ignorados. Ele usa a mesma sintaxe para padrões de pesquisa de arquivo como um .gitignore arquivo.

As entradas num exclude ficheiro aplicam-se apenas a ficheiros não controlados. Eles não impedem que o Git relate alterações em arquivos confirmados que ele já rastreia. Existe apenas um exclude ficheiro por repo.

Como o Git não confirma ou envia o exclude arquivo, você pode usá-lo com segurança para ignorar arquivos em seu sistema local sem afetar mais ninguém.

Use o git update-index para ignorar alterações

Às vezes, é conveniente parar temporariamente de rastrear um arquivo de repositório local e fazer com que o Git ignore as alterações no arquivo. Por exemplo, talvez você queira personalizar um arquivo de configurações para seu ambiente de desenvolvimento sem o risco de confirmar suas alterações. Para fazer isso, você pode executar o git update-index comando com o skip-worktree sinalizador:

git update-index --skip-worktree <file path>

Para retomar o rastreamento, execute o git update-index comando com o --no-skip-worktree sinalizador.

Ou, você pode parar temporariamente de rastrear um arquivo e fazer com que o Git ignore as alterações no arquivo usando o git update-index comando com o assume-unchanged sinalizador. Essa opção é menos eficaz do que o sinalizador, porque uma operação Git pull que altera o skip-worktree conteúdo do arquivo pode reverter o assume-unchanged sinalizador.

git update-index --assume-unchanged <file path>

Para retomar o rastreamento, execute o git update-index comando com o --no-assume-unchanged sinalizador.

Use o git rm para ignorar as alterações

As entradas em um .gitignore arquivo ou exclude não têm efeito nos arquivos que o Git já rastreia. O Git rastreia arquivos que você confirmou anteriormente. Para remover permanentemente um arquivo do instantâneo do Git para que o Git não o rastreie mais, mas sem excluí-lo do sistema de arquivos, execute os seguintes comandos:

git rm --cached <file path>
git commit <some message>

Em seguida, use uma .gitignore entrada ou exclude arquivo para impedir que o Git relate alterações no arquivo.

Próximos passos