Chcę zignorować wszystkie pliki w moim repozytorium oprócz tych, które występują w bin
podkatalogu. Próbowałem dodać do mojego .gitignore
:
*
!bin/*
Nie ma to jednak pożądanego efektu: utworzyłem nowy plik w środku bin/
, ale git status
nadal pokazuję nothing to commit (working directory clean)
.
Jakieś sugestie?
Odpowiedzi:
Ignoruje to pliki root i katalogi główne, a następnie usuwa katalog katalogu głównego:
W ten sposób otrzymujesz cały katalog bin, w tym podkatalogi i ich pliki.
źródło
/stuff/
i!/stuff/specific/
, ale nadal ignoruje / stuff / specific /git check-ignore -v
powiedziałem, że to z powodu~/.gitignore
!/bin/
do mojego.gitignore
pliku głównego , ale dodatkowo musiałem dodać/bin/.gitignore
plik za pomocą!*
... Wykonanie tylko jednej z tych zmian nie zadziałało. Działało to dopiero po połączeniu obu zmian.Tutaj, jak zignorować wszystko oprócz jednego katalogu „ MY_SUPER_DUPER_TEMPLATE_directory ” w jakimś katalogu
Struktura: / bitrix / templates / MY_SUPER_DUPER_TEMPLATE_directory
źródło
Musisz wykluczyć wszystko w drodze do miejsc docelowych, ale musisz uwzględnić miejsca docelowe:
Uwaga: Jest to plik wykluczający (np. Gitignore), więc logika jest odwrócona. Zignoruj wszystko oprócz katalogu tsp, zignoruj wszystko w katalogu tsp, z wyjątkiem katalogu src ...
źródło
Jedyny problem, jaki masz, to to, że
bin
sam katalog nie pasuje dobin/*
wzorca, więc git nawet nie zagląda dobin
katalogu.Przychodzą mi na myśl dwa rozwiązania.
.gitignore
:lub
.gitignore
:bin/.gitignore
:Wolę drugie rozwiązanie, ponieważ pierwsze rozwiązanie nie przestanie ignorować plików w
bin
katalogu, które znajdują się w podkatalogach, które nie są wywoływanebin
. To może, ale nie musi mieć znaczenia w twojej sytuacji.źródło
# Ignore everything * # But not these files... !/wp-content/ !/wp-content/plugins/ !/wp-content/plugins/my_plugin/ !/wp-content/plugins/my_plugin/*
Brak kodu blokowego w komentarzach?Z oficjalnego git doc jeden z przykładów mówi:
Przykład wykluczenia wszystkiego oprócz określonego katalogu foo / bar (zwróć uwagę na / * - bez ukośnika, symbol wieloznaczny również wykluczy wszystko w obrębie foo / bar):
Wyjaśnienie dotyczące wiodącego ukośnika: kiedy używać wiodącego ukośnika w gitignore .
źródło
Spróbuj wykonać najnowszą wersję GIT.
źródło
Myślę, że lepszym sposobem byłoby zakotwiczenie każdego wzorca w górnym katalogu git, zaczynając od ukośnika:
Zamiast ignorować wszystkie pliki, będą ignorować tylko pliki najwyższego poziomu, a nie te w katalogu, którego nie chcesz ignorować.
źródło
To
.gitignore
działa dla mnie:źródło
wypróbuj ten niejasny błąd git.
Mam nadzieję, że to pomoże :)
Wspieranie docs próbki błędów git
PS: spróbuj najpierw przed komentowaniem.
źródło
Musiałem to ostatnio zrobić:
Nie jestem pewien, dlaczego potrzebuję dwóch wierszy, aby wykluczyć jeden folder, ale to zadziałało dla mnie i dla komputerów Mac.
źródło