2011-08-09 11 views
7

Przeszukałem inne pytania, ale nie znalazłem działającego rozwiązania dla mojego projektu. uwzględniając projekt Magento chcę, aby wykluczyć wszystko, z wyjątkiem tego:Git ignoruje wszystkie z wyjątkiem podfolderów

/app/design/frontend/default/theme_name # and obviously all subfolders 
/skin/frontend/default/theme_name # and all subfolders 

Próbowałem wiele kombinacji, ale bez powodzenia. Obecnie utknąłem z plikiem .gitignore:

* 
!/app/ 
!/app/* 

app/* 
!/app/design/ 
!/app/design/* 

Ale nie działa on rekurencyjnie poniżej folderu projektu. Dodano tylko plik testowy do utworzonego folderu projektu.

Odpowiedz

5

Spójrz na moją odpowiedź tutaj: Can't understand how gitignore ignores the folders

cytuje, że:

Poniższe omówienie było pomocne: http://git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html , zwłaszcza po od Linusa:

To przez projekt. Zdecydowałeś się zignorować te katalogi; oni sami dopasowują "*". Tak więc "git add." nie schodzi w nie szuka plików.

Zasadniczo, dla każdego poziomu musisz wejść, odrzucić ten folder, i zignorować zawartość w tym folderze.

Ponadto, należy spojrzeć na konieczności .gitignore w podkatalogu, a nie na poziomie głównym tylko staje się dość skomplikowana, jeśli musisz iść do poziomu podkatalogu z korzenia .gitignore powodu wyjaśnieniem powyżej, przy czym na każdym poziomie , musisz odrzucić folder, a następnie zignorować zawartość i tak dalej.

+0

Dzięki, pomogło mi zrozumieć, jak to działa z git :) – s3v3n

+0

Bug zaprogramowany wg projektu: o –

+0

@Briad Gordon - To Linus dla Ciebie: D – manojlds

5

Zrobiłem tu kilka badań. Co pracował dla mnie było:

/* 
!/directory 
!/another 
/another/* 
!/another/directory 

Z tego podkatalogów /directory były śledzone poprawnie. Ciekawe, że nie działa z jednym tylko / lub tylko * w pierwszej linii - nie jestem pewien, dlaczego.

+0

Niestety, '!/Another/katalog' nie działa dla mnie. Powinienem zignorować/odrzucić na każdym poziomie. – s3v3n

+0

Zastanawiam się, czy to zależy od wersji git.Używam 'git version 1.7.4.1'' –

+0

Mam dokładnie taką samą' $ git --version' 'git version 1.7.4.1'' – s3v3n

0
/** 
!/**/ 
!/app/design/frontend/default/theme_name/** 
!/skin/frontend/default/theme_name/** 

wyjaśnieniu:

  1. ignorować wszystkie pliki i foldery, rekurencyjnie (zwróć uwagę na podwójną gwiazdką).
  2. wykluczyć wszystkie foldery rekursywnie (git przez projekt nie popełni pustych folderów, które folder pełen ignorowanych plików jest liczony jako. Musimy to tak, że kolejne dwa wyklucza działa)
  3. wykluczyć wszystkie pliki i foldery, rekurencyjnie , z tej lokalizacji.
  4. Wyklucz wszystkie pliki i foldery, rekursywnie, z tej lokalizacji.

Zwykle robię to w podfolderach, więc nie wiem, czy pierwszy wiersz będzie działał.

Powiązane problemy