/ / Nie mogę zrozumieć, w jaki sposób gitignore ignoruje foldery - git, gitignore

Nie mogę zrozumieć, jak gitignore ignoruje foldery - git, gitignore

Chcę utworzyć repozytorium dla mojego projektu Magento. W katalogu głównym jest wiele folderów i plików, a ja zmieniam od czasu do czasu tylko jeden folder: app / code / local /

Wszystko inne, co chcę zignorować. Ale .. nie może. Mój plik .gitignore:

*
!app/code/local/
!app/code/local/*

Następnie, gdy próbuję dodać folder do repozytorium, pojawia się błąd:

git add app/code/local/Mds/

The following paths are ignored by one of your .gitignore files:
app
Use -f if you really want to add them.
fatal: no files added

Czy ktoś może w tym pomóc?

Odpowiedzi:

17 dla odpowiedzi nr 1

Spróbuj zignorować, tak jak potrzebujesz:

/*
!/app/
/app/*
!/app/code/
/app/code/*
!/app/code/local/

Pomocna była następująca dyskusja: http://git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html , szczególnie następujące z Linusa:

That"s by design. You"ve chosen to ignore those directories; they match "*" themselves. Thus, "git add ." doesn"t descend into them looking for files.

Zasadniczo dla każdego poziomu, na który musisz wejść, anuluj ignorowanie tego folderu i ignoruj ​​zawartość tego folderu.


0 dla odpowiedzi nr 2

Czy to .gitignore jest w katalogu głównym repo?

Spróbuj tego:

/*
!/app/code/local

0 dla odpowiedzi № 3

Według dokumentacja:

„Nie można ponownie dołączyć pliku, jeśli katalog macierzysty tego pliku jest wykluczony.”

Na przykład, jeśli już pracowałeśrepozytorium i powiedział Gitowi, aby zignorował katalog nadrzędny, dokonał kilku zatwierdzeń, a następnie wrócił i próbował zezwolić na jakiś podkatalog katalogu wykluczonego, nie będzie zawierał tego podkatalogu nawet jeśli twój .gitignore plik jest poprawny. Aby obejść ten problem, musisz wymusić dodanie go (za pomocą -f flaga):

git add -f {file}

Po wykonaniu tej czynności kolejne zmiany będą śledzone.