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_modulesou/packages -
código compilado, tais como
.o,.pyce.classarquivos -
construir diretórios de saída, tais como
/bin,/outou/target -
arquivos gerados em tempo de execução, tais como
.log,.lockou.tmp -
arquivos de sistema ocultos, como
.DS_StoreouThumbs.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.loglogs/monday/foo.barbuild/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.logbuild/logs/debug.logmas 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.logfoo.log.loglogs/debug.log |
Um asterisco é um curinga que corresponde a zero ou mais caracteres. |
*.log!important.log |
debug.logtrace.logmas não important.loglogs/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/*.logtrace.* |
debug.logimportant/trace.logmas 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.logmas não logs/debug.log |
O prefixo de uma barra corresponde aos arquivos apenas na raiz do repositório. |
debug.log |
debug.loglogs/debug.log |
Por padrão, os padrões correspondem aos arquivos em qualquer diretório |
debug?.log |
debug0.logdebugg.logmas não debug10.log |
Um ponto de interrogação corresponde exatamente a um caractere. |
debug[0-9].log |
debug0.logdebug1.logmas 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.logdebug1.logmas não debug2.logdebug01.log |
Os colchetes correspondem a um único caractere no conjunto especificado. |
debug[!01].log |
debug2.logmas não debug0.logdebug1.logdebug01.log |
Um ponto de exclamação pode ser usado para corresponder a qualquer caractere, exceto um do conjunto especificado. |
debug[a-z].log |
debuga.logdebugb.logmas não debug1.log |
As faixas podem ser numéricas ou alfabéticas. |
logs |
logslogs/debug.loglogs/latest/foo.barbuild/logsbuild/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.loglogs/latest/foo.barbuild/logs/foo.barbuild/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.loglogs/important.log |
Espere um minuto! Não
deve
logs/important.logser
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.loglogs/monday/debug.loglogs/monday/pm/debug.log |
Um asterisco duplo corresponde a zero ou mais diretórios. |
logs/*day/debug.log |
logs/monday/debug.loglogs/tuesday/debug.logmas não logs/latest/debug.log |
Os curingas também podem ser usados nos nomes de diretório. |
logs/debug.log |
logs/debug.logmas não debug.logbuild/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:
#ignorethefileliterallynamedfoo[01].txtfoo\[01\].txt
0 comentários :
Enviar um comentário