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