Eu tenho muitos projetos na minha solução .Net. Gostaria de excluir todas as pastas "bin / Debug" e "bin / Release" (e seu conteúdo), mas ainda incluir a própria pasta "bin" e qualquer dll contida nela.
.gitignore com "bin /" ignora as pastas "Debug" e "Release", mas também qualquer dll contida na pasta "bin".
"bin / Debug" ou "bin / Release" no arquivo .gitignore não exclui os diretórios, a menos que eu qualifique totalmente o padrão de ignorar como "Solution / Project / bin / Debug" - que não quero fazer como eu será necessário incluir esse padrão completo para cada projeto em minha solução, além de incluí-lo em todos os novos projetos adicionados.
Alguma sugestão?
Respostas:
Você já tentou caracteres curinga?
Com a versão 1.8.2 do git, você também pode usar o
**
curinga para corresponder a qualquer nível de subdiretórios:fonte
**
. Agora deve ser corrigido. ligaçãoVocê pode usar .gitignore no nível superior para ignorar todos os diretórios no projeto com o mesmo nome. Por exemplo:
Isso deve ser atualizado imediatamente para ficar visível quando você faz o status do git. Assegure-se de que esses diretórios ainda não tenham sido adicionados ao git, pois isso substituirá os ignorados.
fonte
$GIT_DIR/.git/info/exclude
arquivo OPs .git rm -rf DirectoryName/
A questão não está perguntando sobre ignorando todos os subdiretórios, mas eu não conseguia encontrar a qualquer lugar resposta, então eu vou postá-lo:
*/*
.fonte
git add
ignorar um diretório e todos os arquivos em todos os subdiretórios desse diretório. Eu tenteidirname/
,dirname/*
,dirname/**
,dirname/*/*
, mesmo em desesperodirname/*/*/*
,dirname/*/*/*/*
,dirname/*/*/*/*/*
.*/*
ignora todos os subdiretórios, mas não os arquivos no diretório atual. Ignorar um subdiretório específico é um uso normal do gitignore.dirname
,,dirname/
edirname/*
todo o trabalho para mim. Alguma coisa nesse diretório já foi confirmada?.git
diretório inteiro entre as tentativas egit init
depoisgit add --all .
(também tentei sem--all
), usando 1.9.4.msysgit.1. Todo subdiretório não vazio no meu diretório nomeado é adicionado ao índice (marcado no TortoiseGit egit status
). Não há linhas relevantes no.gitignore
início,!
mas deve haver algum conflito. Resolvido por enquanto removendo as pastas duranteadd
. Acho que isso é algo que exigirá um pouco mais de escavação para fornecer as informações necessárias para o diagnóstico. Obrigado por me garantir que não estou entendendo mal a sintaxe.Todas as respostas acima são válidas, mas algo que eu acho que não é mencionado é que, depois de adicionar um arquivo desse diretório ao repositório, você não pode ignorar o diretório / subdiretório que contém esse arquivo (o git ignorará essa diretiva )
Para ignorar os arquivos já adicionados, execute
Caso contrário, você terá que remover todos os arquivos do diretório de destino do repositório primeiro - e então poderá ignorar essa pasta.
fonte
Além de colocar as entradas corretas no seu arquivo .gitignore, se você estiver tentando ignorar algo já adicionado ao repositório, é necessário fazer
git rm -r /path/to/dir
e confirmar isso antes de adicionar o dir ao seu arquivo .gitignore. Caso contrário, a única coisa que o git irá ignorar é a sua diretiva de ignorar.fonte
A única maneira de fazer isso funcionar na minha máquina era fazê-lo desta maneira:
Observe como você deve permitir explicitamente o conteúdo para cada nível que você deseja incluir. Portanto, se eu tiver subdiretórios 5 em temas, ainda preciso esclarecer isso.
Isto é do comentário do @ Yarin aqui: https://stackoverflow.com/a/5250314/1696153
Estes foram tópicos úteis:
Eu também tentei
e
**/wp-content/themes/**
ou
/wp-content/themes/**/*
Nada disso funcionou para mim também. Muita trilha e erro!
fonte
Para excluir conteúdo e subdiretórios:
Para excluir apenas todos os subdiretórios, mas pegar o conteúdo, adicione "/":
fonte
Para ignorar todos os subdiretórios, você pode simplesmente usar:
Isso funciona a partir da versão 1.8.2 do git.
fonte
A maneira genérica de ignorar todas as subpastas, continuando a rastrear os arquivos que estão no
/bin
diretório, seria adicionar a seguinte linha ao arquivo .gitignore do seu projeto:Se você deseja ignorar apenas subpastas nomeadas específicas, você pode:
nb. se o
bin
diretório não estiver na raiz do seu projeto (ao lado do arquivo .gitignore), em vez de por exemplo.bin/*/*
você pode precisarpath/to/bin/*/*
fonte