Eu quero ignorar todos os arquivos no meu repositório, exceto aqueles que ocorrem no bin
subdiretório. Tentei adicionar o seguinte ao meu .gitignore
:
*
!bin/*
No entanto, isso não tem o efeito desejado: criei um novo arquivo dentro de bin/
, mas git status
ainda assim mostro nothing to commit (working directory clean)
.
Alguma sugestão?
Respostas:
Isso ignora os arquivos raiz e os diretórios raiz, e então ignora o diretório da caixa raiz:
Dessa forma, você obtém todo o diretório bin, incluindo subdiretórios e seus arquivos.
fonte
/stuff/
e!/stuff/specific/
, mas ele ainda ignora / stuff / specific /git check-ignore -v
me disseram que era por causa de~/.gitignore
!/bin/
ao meu.gitignore
arquivo raiz , mas também tive que adicionar um/bin/.gitignore
arquivo com!*
... Fazer apenas uma dessas alterações não funcionou. Só funcionou depois de combinar as duas alterações.Aqui, como ignorar tudo, exceto um diretório " MY_SUPER_DUPER_TEMPLATE_directory " em algum diretório
Estrutura: / bitrix / templates / MY_SUPER_DUPER_TEMPLATE_directory
fonte
Você deve excluir tudo no caminho para os destinos, mas deve incluir os destinos:
Nota: Este é um arquivo de exclusão (por exemplo, .gitignore), portanto a lógica é invertida. Ignorar tudo, exceto o diretório tsp, ignorar tudo no diretório tsp, exceto o diretório src ...
fonte
O único problema que você tem é que o
bin
diretório em si não é correspondido pelobin/*
padrão, de modo que o git nem sequer olha nobin
diretório.Existem duas soluções que vêm à mente.
.gitignore
:ou
.gitignore
:bin/.gitignore
:Prefiro a segunda solução, pois a primeira solução não para de ignorar os arquivos no
bin
diretório que estão em subdiretórios que não são chamadosbin
. Isso pode ou não ser importante na sua situação.fonte
# Ignore everything * # But not these files... !/wp-content/ !/wp-content/plugins/ !/wp-content/plugins/my_plugin/ !/wp-content/plugins/my_plugin/*
nenhum código de bloco nos comentários?No documento oficial do git , um dos exemplos diz:
Exemplo para excluir tudo, exceto um diretório específico foo / bar (observe o / * - sem a barra, o curinga também excluiria tudo dentro de foo / bar):
Para obter uma explicação sobre a barra inicial: Quando usar a barra inicial no gitignore .
fonte
Tente seguir a versão mais recente do GIT.
fonte
Eu acho que uma maneira melhor seria ancorar cada padrão no diretório git superior iniciando o padrão com uma barra:
Em vez de ignorar todos os arquivos, ele ignora apenas os arquivos de nível superior, não os do diretório que você não deseja ignorar.
fonte
Isso
.gitignore
funciona para mim:fonte
tente este bug obscuro do git.
Espero que ajude :)
Amostra de bug do git de documentos do suporte
PS: tente primeiro antes de comentar.
fonte
Eu tive que fazer isso recentemente:
Não sei por que preciso de duas linhas para excluir uma pasta, mas é isso que funcionou para mim e macos.
fonte