Estou tentando evitar o seguinte padrão em meu .gitignore
arquivo.
MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js
Nós tentamos:
MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js
No entanto, isso não funcionou. Este é o git no Windows. Existe uma maneira mais concisa de fazer isso sem repetir as coisas?
Respostas:
A partir do git 1.8.2, isto:
Deve funcionar de acordo com esta resposta . Também funciona para mim no Windows 7 usando Sourcetree 1.6.12.0 e a versão do git que ele instala (1.8.4-preview20130916).
Para ignorar cada arquivo e pasta em um diretório recursivamente:
fonte
/
no início. Exemplo:/MyProject/WebApp/Scripts/special/**/*.js
.gitignore
nesta questão estava na raiz do repo (diretório pai de/Webapp
).foo/bar/*/*
(segunda linha)!foo/bar/**/*.js
Funcionou apenas para um nível de subdiretórios, mas não recursivamente.A seguir a página de manual do gitignore:
Portanto, fica claro que não há como especificar uma certa quantidade de diretórios entre duas strings, como entre
special
ejs
.No entanto, você pode ter um
.gitignore
arquivo por diretório, então talvez no seu caso o seguinte conteúdono seguinte lugar
seria suficiente?
fonte
MyPrject/WebApp/Scripts/special*.js
e combinavaMyPrject/WebApp/Scripts/specialfile.js
tambémMyPrject/WebApp/Scripts/special/a/b/c/file.js
. No entanto, por algum motivo, o comportamento mudou e minha solução atual é listar os diretórios individualmente. Estou usando o GitHub para Windows.find MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | sh
Isso funciona para mim no osx.
fonte
Tente executar
git rm -r --cached MyPrject/WebApp/Scripts/special/
Seu diretório mencionado pode ter sido armazenado em cache pelo git e aparecerá em arquivos não rastreados. Depois de limpar o cache, certifique-se de mencioná-lo.gitignore
.fonte