Próbuję uniknąć następującego wzorca w moim .gitignore
pliku.
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
Próbowaliśmy:
MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js
To jednak nie zadziałało. To jest git w systemie Windows. Czy istnieje bardziej zwięzły sposób na zrobienie tego bez powtarzania rzeczy?
Odpowiedzi:
Od wersji Git 1.8.2:
Powinien działać zgodnie z tą odpowiedzią . Działa również w systemie Windows 7 przy użyciu Sourcetree 1.6.12.0 i wersji git, którą instaluje (1.8.4-preview20130916).
Aby rekurencyjnie gitignore każdy plik i folder w katalogu:
źródło
/
na początku. Przykład:/MyProject/WebApp/Scripts/special/**/*.js
.gitignore
w tym pytaniu znajdował się w katalogu głównym repozytorium (katalog nadrzędny/Webapp
).foo/bar/*/*
(druga linia)!foo/bar/**/*.js
Działała tylko dla jednego poziomu podkatalogów, ale nie rekurencyjnie.Następująca strona podręcznika gitignore:
Z tego jasno wynika, że nie ma możliwości określenia pewnej liczby katalogów między dwoma łańcuchami, na przykład między
special
ijs
.Niemniej jednak możesz mieć
.gitignore
plik w każdym katalogu, więc może w twoim przypadku następująca treśćw następującym miejscu
wystarczy?
źródło
MyPrject/WebApp/Scripts/special*.js
i pasowałoMyPrject/WebApp/Scripts/specialfile.js
równieżMyPrject/WebApp/Scripts/special/a/b/c/file.js
. Jednak z jakiegoś powodu zachowanie się zmieniło i moim obecnym obejściem jest wyświetlanie pojedynczych katalogów. Używam GitHub dla Windows.find MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | sh
To działa dla mnie na osx.
źródło
Spróbuj wykonać.
git rm -r --cached MyPrject/WebApp/Scripts/special/
Twój wspomniany katalog mógł być zapisany w pamięci podręcznej przez git i będzie się pojawiał na nieśledzonych plikach. Po wyczyszczeniu pamięci podręcznej upewnij się, że masz ją wymienioną.gitignore
.źródło