O que é um arquivo .gitignore e como ele está configurado?

Um arquivo .gitignore é um arquivo de texto colocado em seu repositório git que diz ao git para não rastrear certos arquivos e pastas que você não deseja que sejam enviados para seu repositório principal. Ele tem muitos usos e você quase sempre precisará configurá-lo se estiver configurando um novo repositório.

índice

  1. Qual é o objetivo do .gitignore?
  2. Usando .gitignore
  3. .gitignore global
  4. Forçar confirmação ou arquivar arquivos ignorados

Qual é o objetivo do .gitignore?

Na maioria dos projetos, há uma diferença entre código/configuração e arquivos gerados a partir desse código ou configuração. Este último geralmente não é útil e geralmente pode ser ignorado.

Normalmente você só quer que o código e a configuração sejam rastreados através do git. Isso ocorre porque os arquivos gerados são efêmeros e, se você excluí-los, pode simplesmente gerá-los novamente. Muitas vezes, não adianta acusá-los, pois eles apenas complicarão as coisas e causarão conflitos sindicais desnecessários.

Esta é uma definição ampla, então vamos dar uma olhada em um exemplo. Nos projetos Node JS, existe uma pasta chamada node_modules que contém todos os pacotes externos necessários para executar o código. Você pode remover esse diretório e reconstruí-lo completamente executando npm install , que usa a configuração package.json para procurar pacotes.

Então, qual é o sentido de ter a pasta node_modules no Git? Realmente não existe um, pois é mais complicado, pode causar problemas e pode até aumentar drasticamente o tamanho do repositório Git em muitos casos.

Se você ignorar o diretório inteiro, todos os seus colegas ainda poderão gerar sua própria cópia local do arquivo package.json . Então, apenas package.json deve ser rastreado no Git. A maioria das coisas adicionadas ao .gitignore seguem esse padrão. Artefatos de construção, como uma pasta ./bin/ , não os confirme, pois eles são um resultado direto do próprio código.

Outras coisas .gitignore também podem ser adicionadas por conveniência. O MacOS gera arquivos de sistema chamados .DS_store , que você sempre pode ignorar. Talvez você armazene chaves de API em .env/ que não deseja que sejam rastreadas no controle de origem, você também pode adicioná-las. O cache, logs e outras saídas geralmente podem ser ignorados.

Usando .gitignore

Você deve criar um arquivo chamado .gitignore , sem extensões, na raiz do seu projeto onde seu diretório .git está localizado. Você pode fazer isso em seu navegador de arquivos ou linha de comando com qualquer editor de texto CLI:

 nano .gitignore 

Você pode configurá-lo de várias maneiras, mas as principais ferramentas que ele possui são:

  • * caracteres curinga, que correspondem a qualquer texto e podem ser usados ​​para corresponder a qualquer diretório ou arquivo, independentemente de sua extensão.
  • ! , que funciona como uma espécie de whitelist que nega um arquivo previamente excluído. O principal problema é que ele coloca o arquivo na lista de permissões apenas se ele foi excluído diretamente e não funcionará para arquivos em diretórios que foram completamente excluídos.
  • ** , que corresponde recursivamente a qualquer coisa nos diretórios. Por exemplo, **/*.json corresponderá a qualquer arquivo JSON, não importa onde esteja, e src/** corresponderá recursivamente a todos os arquivos da pasta. Isso é útil quando você deseja colocar na lista de permissões e não ignorar o diretório inteiro.

Por exemplo, um gitignore do Node JS poderia ser assim:

 node_modules/ build/ npm-debug.log .env .env.test .env.production .DS_Store .npm .eslintcache logs/ *.log npm-debug.log*

Arquivos na lista de permissões com ! pode ser muito útil para muitas configurações. Por exemplo, em um dos meus projetos eu tinha uma ferramenta chamada steamcmd que baixa as dependências dos servidores do jogo do Steam. Esta ferramenta está incluída em um único executável portátil, mas produz muito lixo que não quero que seja rastreado no Git.

A solução foi ignorar tudo na pasta, mas colocar o executável na lista de permissões. Ele funcionará para qualquer executável portátil que se expanda dessa maneira ou produza lixo desnecessário no diretório.

 Projeto/steamcmd/** !Project/steamcmd/steamcmd.exe

O gitignore também usa outros modelos de globbing do Unix para correspondência de strings, como um ponto de interrogação para correspondência de caractere único ou [az] que corresponderá a conjuntos de caracteres.

Você também pode escrever mais de um arquivo .gitignore que pode corresponder a arquivos relacionados a eles mesmos. Isso não é muito útil, pois você pode incluir as regras no arquivo raiz, o que é mais fácil de seguir, mas em alguns casos pode ajudar na repetição do código. No entanto, a solução é usar conjuntos de caracteres para corresponder a vários diretórios. Por exemplo, combinando diretórios que diferenciam maiúsculas de minúsculas com uma matriz:

 # Resultados da compilação [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]elease/

Se você está tendo problemas com sua própria configuração .gitignore , você pode depurar com o comando check-ignore do Git:

 git check-ignore -v testfile.json

.gitignore global

O Git também tem uma configuração global para .gitignore , mas não deve ser usado na maioria dos casos. Isso ocorre porque o .gitignore em seu computador não se aplica a seus colegas e apenas a commits feitos com sua instância do Git.

Se você quiser configurá-lo de qualquer maneira, você pode fazê-lo com o seguinte comando:

 git config --global core.excludesfile ~/.globalignore

Forçar confirmação ou arquivar arquivos ignorados

O commit forçado geralmente é uma má ideia; Você provavelmente deve adicionar uma lista de permissões para este arquivo específico, porque uma vez confirmadas, as atualizações para este arquivo não serão rastreadas. Mas, se você quiser confirmar algo manualmente, você pode executar git add com o parâmetro --force :

 git add -f debug.log

Da mesma forma, o git stash também pode ocultar alterações locais em arquivos ignorados, o que pode ser útil, pois não afetará o repositório remoto:

 git stash --tudo
  • Todos os Microsoft PowerToys para Windows 10 explicados
  • Como converter JPG para PDF no Windows 10

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão geek

O que é uma carga fantasma?

Deixe uma resposta Cancelar resposta

Como fazer o Git ignorar uma pasta?

No git é possível ignorar arquivos ou pastas que não queremos incluir no sistema de controle de versão, seja porque contêm informações confidenciais ou são geradas automaticamente por alguma ferramenta: logs, arquivos temporários, etc. O arquivo onde a lista de arquivos e pastas a serem ignorados é definida é chamado. gitignore .

Como o Gitignore é usado?

Implante o gitignore

Você simplesmente tem que criar um arquivo chamado " .gitignore " na pasta raiz do seu projeto. Como você pode ver, é um arquivo oculto, pois começa com um ponto "." Nota: Arquivos cujos nomes começam com um ponto "." eles estão ocultos apenas no Linux e no Mac.

Como fazer o Git ignorar um arquivo?

Não há comando explícito para ignorar arquivos no Git : em vez disso, quando você tem novos arquivos que deseja ignorar, precisa editar e confirmar manualmente o arquivo . gitignore .

O que é um arquivo Gitignore?

gitignore , é um arquivo de texto que informa ao Git quais arquivos ou pastas devem ser ignorados em um projeto. Um arquivo local. gitignore geralmente é colocado no diretório raiz de um projeto. Você também pode criar um arquivo global.

Ir arriba