O Git vê todos os arquivos em sua cópia de trabalho como uma das três coisas:
-
rastreado - um arquivo que foi previamente preparado ou confirmado;
-
não rastreado - um arquivo que não foi preparado ou confirmado; ou
-
ignorado - um arquivo que foi dito explicitamente ao Git para ignorar.
Arquivos
ignorados geralmente são artefatos de construção e arquivos
gerados por máquina que podem ser derivados da origem do repositório
ou, caso contrário, não devem ser confirmados. Alguns exemplos
comuns são:
-
caches de dependência, como o conteúdo
/node_modules
ou/packages
-
código compilado, tais como
.o
,.pyc
e.class
arquivos -
construir diretórios de saída, tais como
/bin
,/out
ou/target
-
arquivos gerados em tempo de execução, tais como
.log
,.lock
ou.tmp
-
arquivos de sistema ocultos, como
.DS_Store
ouThumbs.db
-
arquivos de configuração IDE pessoais, como
.idea/workspace.xml
Os
arquivos ignorados são rastreados em um arquivo especial
chamado
.gitignore
na raiz do seu repositório. Não há um comando explícito git
ignore: em vez disso, o .gitignore
arquivo
deve ser editado e confirmado manualmente quando você tiver novos
arquivos que deseja ignorar. Os ficheiros.gitignore
contêm padrões que são comparados com os nomes de arquivo
no seu repositório para determinar se devem ou não ser ignorados.Git ignorar padrões
.gitignore
usa padrões
de globbing para
combinar com nomes de arquivos. Você pode construir seus
padrões usando vários símbolos:padronizar | Correspondências de exemplo | Explicação* |
---|---|---|
**/logs |
logs/debug.log logs/monday/foo.bar build/logs/debug.log |
Você pode anexar um padrão com um asterisco duplo para corresponder aos diretórios em qualquer lugar do repositório. |
**/logs/debug.log |
logs/debug.log build/logs/debug.log mas não logs/build/debug.log |
Você também pode usar um asterisco duplo para corresponder aos arquivos com base no nome e no nome do diretório pai. |
*.log |
debug.log foo.log .log logs/debug.log |
Um asterisco é um curinga que corresponde a zero ou mais caracteres. |
*.log !important.log |
debug.log trace.log mas não important.log logs/important.log |
Anexar um ponto de exclamação a um padrão o nega. Se um arquivo corresponder a um padrão, mas também corresponder a um padrão de negação definido posteriormente no arquivo, ele não será ignorado. |
*.log !important/*.log trace.* |
debug.log important/trace.log mas não important/debug.log |
Os padrões definidos após um padrão de negação irão ignorar todos os arquivos negados anteriormente. |
/debug.log |
debug.log mas não logs/debug.log |
O prefixo de uma barra corresponde aos arquivos apenas na raiz do repositório. |
debug.log |
debug.log logs/debug.log |
Por padrão, os padrões correspondem aos arquivos em qualquer diretório |
debug?.log |
debug0.log debugg.log mas não debug10.log |
Um ponto de interrogação corresponde exatamente a um caractere. |
debug[0-9].log |
debug0.log debug1.log mas não debug10.log |
Os colchetes também podem ser usados para corresponder a um único caractere de um intervalo especificado. |
debug[01].log |
debug0.log debug1.log mas não debug2.log debug01.log |
Os colchetes correspondem a um único caractere no conjunto especificado. |
debug[!01].log |
debug2.log mas não debug0.log debug1.log debug01.log |
Um ponto de exclamação pode ser usado para corresponder a qualquer caractere, exceto um do conjunto especificado. |
debug[a-z].log |
debuga.log debugb.log mas não debug1.log |
As faixas podem ser numéricas ou alfabéticas. |
logs |
logs logs/debug.log logs/latest/foo.bar build/logs build/logs/debug.log |
Se você não anexar uma barra, o padrão corresponderá aos arquivos e ao conteúdo dos diretórios com esse nome. No exemplo corresponde à esquerda, os diretórios e os arquivos denominados logs são ignorados |
logs / | logs/debug.log logs/latest/foo.bar build/logs/foo.bar build/logs/latest/debug.log |
Anexar uma barra indica que o padrão é um diretório. Todo o conteúdo de qualquer diretório no repositório correspondente a esse nome - incluindo todos os seus arquivos e subdiretórios - será ignorado |
logs/ !logs/important.log |
logs/debug.log logs/important.log |
Espere um minuto! Não
deve
logs/important.log ser
negado no exemplo à esquerdaNão! Devido a uma peculiaridade relacionada ao desempenho no Git, você não pode negar um arquivo que é ignorado devido a um padrão que corresponde a um diretório |
logs/**/debug.log |
logs/debug.log logs/monday/debug.log logs/monday/pm/debug.log |
Um asterisco duplo corresponde a zero ou mais diretórios. |
logs/*day/debug.log |
logs/monday/debug.log logs/tuesday/debug.log mas não logs/latest/debug.log |
Os curingas também podem ser usados nos nomes de diretório. |
logs/debug.log |
logs/debug.log mas não debug.log build/logs/debug.log |
Os padrões que especificam um arquivo em um diretório específico são relativos à raiz do repositório. (Você pode acrescentar uma barra, se quiser, mas ela não faz nada de especial.) |
**
essas explicações assumem que seu arquivo .gitignore está no
diretório de nível superior do seu repositório, como é a
convenção. Se o seu repositório tiver vários arquivos
.gitignore, substitua mentalmente "raiz do repositório"
por "diretório que contém o arquivo .gitignore" (e
considere unificá-los, para a sanidade da sua equipe). *
Além
desses caracteres, você pode usar # para incluir comentários em
seu
.gitignore
:# ignore all logs
*.
log
Você
pode usar \ para escapar dos caracteres padrão se tiver arquivos ou diretórios que os contenham:
#
ignore
the
file
literally
named
foo
[01]
.txt
foo
\
[01\]
.txt
0 comentários :
Enviar um comentário