sexta-feira, 25 de outubro de 2019

.gitignore


O Git vê todos os arquivos em sua cópia de trabalho como uma das três coisas:

  1. rastreado - um arquivo que foi previamente preparado ou confirmado;
  2. não rastreado - um arquivo que não foi preparado ou confirmado; ou
  3. 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.pyc.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.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.logser negado no exemplo à esquerda

Nã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