studio - git ignore exception



gitignore python (6)

Eu tenho um arquivo gitignore que faz o git ignorar arquivos *.dll , e esse é realmente o comportamento que eu quero. No entanto, se eu quiser uma exceção (ou seja, para poder cometer foo.dll ), como posso conseguir isso?


Answer #1

A solução depende da relação entre a regra de ignorar o git e a regra de exceção:

  1. Arquivos / Arquivos no mesmo nível: use a solução @Skilldrick .
  2. Pastas / subpastas: use a solução @Matiss Jurgelis .
  3. Arquivos / Arquivos em diferentes níveis ou Arquivos / Subpastas: você pode fazer isso:

    *.suo
    *.user
    *.userosscache
    *.sln.docstates
    
    # ...
    
    # Exceptions for entire subfolders
    !SetupFiles/elasticsearch-5.0.0/**/*
    !SetupFiles/filebeat-5.0.0-windows-x86_64/**/*
    
    # Exceptions for files in different levels
    !SetupFiles/kibana-5.0.0-windows-x86/**/*.suo
    !SetupFiles/logstash-5.0.0/**/*.suo
    

Answer #2

Apenas adicione ! antes de uma regra de exclusão.

De acordo com a gitignore :

Os padrões têm o seguinte formato:

...

  • Um prefixo opcional! que nega o padrão; qualquer arquivo correspondente excluído por um padrão anterior será incluído novamente. Se um padrão negado corresponder, isso substituirá as origens de padrões de precedência mais baixos.

Answer #3

O Git ignora pastas se você escrever:

/js

mas não pode adicionar exceções se você !/js/jquery ou !/js/jquery/ ou !/js/jquery/*

Você deve escrever:

/js/* 

e só então você pode, exceto subpastas como este

!/js/jquery

Answer #4

Para excluir tudo em um diretório, mas alguns subdiretórios, faça o seguinte:

wp-content/*
!wp-content/plugins/
!wp-content/themes/

Fonte: https://gist.github.com/444295


Answer #5

Usar:

*.dll    #Exclude all dlls
!foo.dll #Except for foo.dll

De gitignore :

Um prefixo opcional! que nega o padrão; qualquer arquivo correspondente excluído por um padrão anterior será incluído novamente. Se um padrão negado corresponder, isso substituirá as origens de padrões de precedência mais baixos.


Answer #6

Você pode simplesmente git add -f path/to/foo.dll .

.gitignore ignora apenas arquivos para rastreamento usual e coisas como git add .





gitignore