Gitignore nie działa

Mój plik .gitignore nie działa z jakiegoś powodu i żadna ilość googlowania nie była w stanie go naprawić. Oto co mam:

*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log

Jest w katalogu master, który jest moim repo git. Używam Git 1.8.4.2, ponieważ jestem na MacBooku z OSX 10.8.6.

 417
Author: edwardmlyte, 2014-08-21

11 answers

Pliki / folder w twojej kontroli wersji nie usunie się tylko dlatego, że dodałeś je do .gitignore. Są już w repozytorium i trzeba je usunąć. Możesz to zrobić za pomocą tego:

(zanim to zrobisz, pamiętaj, aby popełnić wszystko, co zmieniłeś.)

git rm -rf --cached .
git add .

Usuwa wszystkie pliki z repozytorium i dodaje je z powrotem(tym razem zgodnie z regułami w .gitignore).

 1018
Author: Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-04 21:38:06

Aby odłączyć pojedynczy plik, który został już dodany/zainicjowany do repozytorium, tzn. przestać śledzić plik, ale nie usunąć go z systemu, Użyj: git rm --cached filename

Aby usunąć śledzenie KAŻDEGO pliku, który znajduje się teraz w twoim .gitignore:

Najpierw Zatwierdź wszelkie zaległe zmiany kodu, a następnie uruchom polecenie:

git rm -r --cached .

Usuwa zmienione pliki z indeksu (staging area), a następnie uruchom:

git add .

Commit it:

git commit -m ".gitignore is now working"
 177
Author: Nicolas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-19 15:05:00

Po zejściu trochę króliczej nory próbując podążać za odpowiedziami na to pytanie( może dlatego, że musiałem to zrobić w projekcie visual studio), odkryłem, że łatwiejsza droga do

  1. Wytnij i wklej pliki, których nie chcę już śledzić w tymczasowej lokalizacji

  2. Zatwierdź "usunięcie" tych plików

  3. Zatwierdź modyfikację .gitignore, aby wykluczyć pliki, które tymczasowo przeniosłem

  4. Przenieś pliki z powrotem do teczka.

Uznałem, że jest to najbardziej prosta droga do tego (przynajmniej w visual studio, lub zakładam inne środowisko oparte na IDE heave, takie jak Android Studio), bez przypadkowego strzelania sobie w stopę z dość wszechobecnym git rm -rf --cached . , po czym projekt visual studio, nad którym pracowałem, nie załadował się.

 27
Author: Garrett Simpson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-26 17:10:52

Odpowiedź@Ahmad działa, ale jeśli chcesz po prostu zignorować 1 konkretny plik lub kilka plików zrób tak, jak sugeruje @ Nicolas

Krok 1

Dodaj nazwę pliku do .plik gitignore

Krok 2

[Usuń nazwę pliku (ścieżkę pliku) z pamięci podręcznej git

git rm --cached filename

Setp 3

Zatwierdź zmiany git add filename

git commit -m "add filename to .gitignore"

Utrzyma twoją historię git w czystości, ponieważ jeśli zrobisz git rm -r --cached . i dodasz z powrotem wszystkie i zatwierdzisz je, to zanieczyści Twoją historię git (pokaże, że dodasz wiele plików w jednym commicie) nie jestem pewien, czy dobrze wyrażam swoje myśli, ale mam nadzieję, że rozumiesz o co chodzi]}

 11
Author: Sultanmyrza Kasymbekov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-12 09:59:48

W moim przypadku była to pusta Spacja na początku pliku, która pojawiła się wyraźnie, gdy otwierałem plik w Notatniku, nie była oczywista w Visual Studio Code.

 8
Author: S Saad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 09:47:43

Użyłem czegoś do wygenerowania wspólnego .gitignore dla mnie i wpadłem na to. Po przeczytaniu @ Ozesh odpowiedź otworzyłem w vs Kod, ponieważ ma ładny wskaźnik w prawym dolnym rogu pokazujący rodzaj zakończeń linii. To było, jeśli tak konwertowałem do CRLF zgodnie z sugestią, ale bez kości.

Potem spojrzałem obok zakończeń linii i zauważyłem, że został zapisany przy użyciu UTF16. Więc zapisałem ponownie używając kodowania UTF8 voila, zadziałało. Nie sądziłem, że CRLF ma znaczenie, więc zmieniłem go z powrotem na LF dla pewności i nadal zadziałało.

Oczywiście to nie był problem z OPs, ponieważ już popełnił pliki, więc były one już indeksowane, ale pomyślałem, że podzielę się na wypadek, gdyby ktoś inny natknął się na to.

TLDR ; Jeśli nie zatwierdziłeś jeszcze plików i .gitignore nadal nie jest przestrzegany, sprawdź kodowanie plików i upewnij się, że jego UTF8 i jeśli to nie działa, to może spróbuj mieszać z zakończeniami linii.

 8
Author: DeezCashews,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-02 19:02:53

W moim przypadku białe spacje na końcu linii .przyczyną był gitignore. Więc uważaj na białe spacje w .gitignore!

 4
Author: 026,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-29 19:11:02

Rozwiązałem swój problem wykonując następujące czynności:

Po pierwsze, jestem użytkownikiem systemu windows, ale borykałem się z podobnym problemem. Więc zamieszczam moje rozwiązanie tutaj.

Jest jeden prosty powód, dla którego czasami ... gitignore nie działa tak, jak powinno. Wynika to z zachowania konwersji EOL.

Oto szybkie rozwiązanie

Edycja > Konwersja EOL > Format Windows > Zapisz

Możesz obwiniać ustawienia edytora tekstu za to.

Na przykład:

Ponieważ jestem programistą windows, zwykle używam Notepad++ do edycji mojego tekstu w przeciwieństwie do użytkowników Vim-a.

Więc co się dzieje, kiedy otwieram moje .plik gitignore używając Notepad++ wygląda mniej więcej tak:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


# See https://help.github.com/ignore-files/ for more about ignoring files.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.dll
*.force
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

Jeśli otwieram ten sam plik używając domyślnego Notatnika, to dostaję to

## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from  https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # See https://help.github.com/ignore-files/ for more about ignoring files. # User-specific files *.suo *.user *.userosscache 

Więc, można już zgadnąć patrząc na wyjście. Wszystko w ... gitignore stał się jednym liniowcem, a od na początku jest ##, zachowuje się tak, jakby wszystko było komentowane.

Sposób naprawienia tego jest prosty: Po prostu otwórz .plik gitignore z Notepad++, następnie wykonaj następujące

Edycja > Konwersja EOL > Format Windows > Zapisz

Następnym razem, gdy otworzysz ten sam plik z domyślnym notatnikiem windows, wszystko powinno być poprawnie sformatowane. Spróbuj i zobacz, czy to działa dla Ciebie.

 3
Author: Ozesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-28 11:44:55

Również komentarze muszą być na własnej linii. Nie można ich umieścić po wpisie. Więc to nie zadziała:

/node_modules  # DON'T COMMENT HERE (since nullifies entire line)

Ale to zadziała:

# fine to comment here
/node_modules
 3
Author: Ben Pritchard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-03 03:22:15

Dodawanie mojego bitu jako to popularne pytanie.

Nie mogłem tego przewidzieć .katalog historii w środku .gitignore, bo bez względu na to, co combo próbowałem, to po prostu nie działa. Windows generuje nowe pliki przy każdym zapisie i nie chcę ich w ogóle widzieć.

Tutaj wpisz opis obrazka

Ale wtedy zdałem sobie sprawę, że to tylko moje środowisko rozwoju osobistego na mojej maszynie. Takie rzeczy .historia lub .vscode są specyficzne dla mnie, więc byłoby dziwne, gdyby każdy zawierał swoje .wpisy gitignore oparte na tym, czego używają IDE lub OS.

Więc to zadziałało dla mnie, po prostu dołącz".historii " do .git / info / exclude

echo ".history" >> .git/info/exclude
 1
Author: Daniel Katz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-27 17:11:49

Czy git reset --hard działa dla kogoś? Nie mówię, że jest to dobre rozwiązanie, po prostu wydawało się działać po raz pierwszy próbowałem.

 0
Author: user1889992,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-07 05:43:03