.gitignore nie działa
Mój plik .gitignore
wydaje się być ignorowany przez git - czy plik .gitignore
może być uszkodzony? Jakiego formatu pliku, ustawień regionalnych lub Kultury oczekuje git?
Mój .gitignore
:
#this is a comment
debug.log
nbproject/
Wyjście z git status
:
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# debug.log
# nbproject/
nothing added to commit but untracked files present (use "git add" to track)
Chciałbym, aby debug.log
i nbproject/
nie pojawiały się na liście plików nie śledzonych.
Gdzie mam zacząć szukać, żeby to naprawić?
24 answers
Nawet jeśli nie śledziłeś plików do tej pory, git wydaje się być w stanie "wiedzieć" o nich nawet po dodaniu ich do .gitignore
.
Uwaga: najpierw Zatwierdź bieżące zmiany, albo je utracisz.
Następnie uruchom następujące polecenia z górnego folderu twojego git repo:
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
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-05-05 08:30:08
Kiedy .plik gitignore nie działa (dodawanie czegoś doplik gitignore lub usunięcie czegoś z .plik gitignore), możesz sprawdzić następujące wskazówki:
- należy zwrócić uwagę na globalny plik gitignore, który czasami może wpływać na gitignore.
-
Kiedy dodasz coś do .plik gitignore, jako osoba, która odpowiedziała to pytanie pierwsze:
git rm -r --cached . git add . git commit -m "fixed untracked files"
- kiedy usuniesz coś z .plik gitignore.powyższe kroki będą nie działa dla ciebie . Możesz spróbować tego:
git add -f "filetype"
git commit -m "Refresh removing filetype from .gitignore file."
"Typ pliku" oznacza plik lub typ pliku, który chcesz usunąć .plik gitignore. Chcesz, aby Typ pliku był śledzony ponownie.
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-07 23:29:32
Naprawiono. Ok, stworzyłem .plik gitignore w notatniku na windows i nie działał. Kiedy oglądałem ... plik gitignore w Linuksie wyglądał jak zorganizowany bełkot - być może notatnik wypisał unicode a nie ascii czy cokolwiek to jest 8-bit.
Więc przepisałem plik na moim Linuksie, a kiedy ściągnąłem go z powrotem do windows działa dobrze! Hurra!
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
2012-07-12 12:30:50
Bez dodawania kolejnego commita do twojego projektu, jedna linijka wystarczy, aby .gitignore
działała tak, jak powinna:
git rm -r --cached debug.log nbproject
Spowoduje to usunięcie go z repozytorium, ale nadal będzie je przechowywać fizycznie, w prostym języku angielskim, usunie historię zmian związanych z nimi, a także nie będzie śledzić ich zmian w żadnym przyszłym commicie. Lepsze wyjaśnienie znajdziesz tutaj .
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-10-24 22:04:43
Inną przyczyną tego problemu są spacje lub tabulatory przed instrukcją:
Przykład:
#Be aware of following:
notWorkingIgnore.*
workingIgnore.*
I jak wskazano w komentarzu poniżej, spacja końcowa może być również problemem
#Be aware of following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace
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-10-02 10:55:24
Zauważyłem, że kodowanie .gitignore
miało wpływ -- jeśli plik był Unicode, był ignorowany, jeśli był ASCII, nie był.
Proces:
- weryfikacja statusu:
PS> git status
- tworzenie funkcji do Get-FileEncoding
- Test
.gitignore
's encoding:PS> Get-FileEncoding .gitignore
-
Zmień kodowanie NA ASCII:
PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
- Potwierdź:
PS> git status
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-05-23 12:34:51
Podobnie jak w przypadku innych rozwiązań, Zatwierdź jako pierwszy i pamiętaj, że utracisz wszelkie nieprzewidziane zmiany.
Miałem lepsze wyniki z tym:
git rm -r --cached .
git reset HEAD --hard
git status
Zauważ, że status nie powinien mieć teraz żadnych zmodyfikowanych plików.
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-10-21 17:17:30
Wszystkie odpowiedzi tutaj są rzeczywiście obejścia. Musisz stworzyć .plik gitignore przed uruchomieniem git init
, w przeciwnym razie git
nigdy nie będzie wiedział, że musisz zignorować te pliki, ponieważ zostały one już śledzone.
echo .idea/ >> .gitignore
git init
Jeśli rozwijasz się na co dzień, radzę Ci dodać swoje zwykłe ignorowane pliki do pliku ~/.gitignore_global
. W ten sposób git
będzie już wiedział, które Pliki (czyli "Twój użytkownik", ponieważ jest to plik w katalogu domowym) Zwykle ignorujesz.
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-06-01 14:18:43
Sprawdź również katalog , w którym umieścisz .gitignore Powinno być w korzeniu twojego projektu :
./myproject/.gitignore
Nie w
./myproject/.git/.gitignore
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-10-14 06:32:07
W moim przypadku to dlatego, że pliki już istnieją w repo i staram się je zignorować.
To są rzeczy, które zrobiłem, aby rozwiązać problem:
- skopiuj pliki do folderu temp
- usuń je z folderu mojego projektu.
- zatwierdź zmiany, które usuwają te pliki z repo
- Ponownie dodałem te pliki do folderu mojego projektu
Do tego czasu wszelkie zmiany w tych plikach zostały zignorowane.
Myślę, że nie można ignorować plików, które już / align = "left" /
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-08-21 08:27:15
Jest jeszcze jeden problem z .gitignore
, który może się zdarzyć, szczególnie dla użytkownika windows, git nie lubi, gdy wymieniasz .gitignore
(np. unity.gitignore
). Będziesz chciał zawsze nazywać go .gitignore
, lub w systemie windows, .gitignore.
, Ponieważ windows myśli, że próbujesz zmienić nazwę bez nazwy pliku.
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
2015-10-29 16:05:58
Właśnie natknąłem się na ten problem. Zawartość w moim .plik gitignore nadal pojawiał się na liście nie śledzonych plików.
Używałem tego do utworzenia pliku ignorowania:
echo "node_modules" > .gitignore
Okazało się, że podwójne cytaty powodowały dla mnie problem. Usunąłem plik ignorowania, a następnie ponownie użyłem polecenia bez cudzysłowów i działało zgodnie z oczekiwaniami. Nie musiałem mieszać z kodowaniem plików. Jestem na maszynie Win10 używając Cmder.
Przykład:
echo node_modules > .gitignore
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-11-03 05:26:20
Dla mnie żadna z powyższych odpowiedzi nie zadziałała. Musiałem skopiować .gitignore
tekst do exclude.txt
pliku znalezionego w
<Your-project-folder>\.git\info
Po zakończeniu odśwież zmiany, a wszystkie Nie śledzone pliki znikną. Commit jak zwykle.
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-02-20 00:47:06
Miałem ten sam problem. Wydaje mi się, że problemem była rozbieżność CR vs CR+LF. Schowałem rzeczy w moim .gitignore używając cmd (w windows 7) i następującego polecenia:
Zły:
Echo "file_to_be_ignored.py">>.gitignore
echo"*~">>.gitignore
Itd.
Problem polegał na tym, że ta komenda nie umieszcza WŁAŚCIWEGO znacznika końca linii, aby git rozpoznał nowe linie (CR lub CR+LF, gdy git oczekuje drugiego). Rozwiązałem problem przez ręczne zastępowanie każdej nowej linii w vim (vim na ratunek!) i zadziałało idealnie.
Spróbuj edytować swoje .gitignore w Notepad++ lub vim (najlepiej), nawet jeśli plik wygląda jak poprawnie sformatowany, spróbuj zastąpić nowe linie. Brzmi dziwnie, wiem, ale zadziałało na mnie. : D
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
2015-02-21 06:32:39
[[5]] miałem taki problem, zgitignore zawierający tę linię:
lib/ext/
Właśnie zdałem sobie sprawę, że w rzeczywistości ten katalog jest dowiązaniem symbolicznym do folderu gdzie indziej:
ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb 6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib
W linii lib/ext/
, git szuka folderu , ale dowiązaniem symbolicznym jest Plik , więc mój katalog lib nie jest ignorowany.
Naprawiłem to zastępując lib/ext/
przez lib/ext
na moim .gitignore.
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-05-03 14:21:03
Specjalnie dla użytkowników systemu Windows: jeśli nie śledzisz plików i czyszczenie / usuwanie plików z pamięci podręcznej nie działa. Spróbuj otworzyć powershell i przekonwertować .plik gitignore do kodowania UTF-8.
1)$Myfile = Get-Content ..gitignore
2)$Myfile = | Out-File-Encoding "UTF8".gitignore
Trzeba to zrobić tylko raz, aby zakodować .plik gitignore dla tego katalogu, a ponieważ plik jest następnie zakodowany poprawnie, gdy edytujesz plik w przyszłości, powinien działać. I prawdopodobnie jest to spowodowane usterką z GitHub nie jest o odczyt kodowania non UTF-8 dla .plik gitignore. O ile wiem, ten problem nie został jeszcze rozwiązany w systemie Windows. Nie za duża sprawa, tylko ból do debugowania, gdy nie działa.
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-11-11 01:27:15
Mój problem był (jak sugerował OP) skorumpowany .plik gitignore. Nie wierzyłem w to i ignorowałem tę możliwość, dopóki wszystko inne nie zawiodło. Korupcja nie pojawiła się w vi
, ale były dwa bajty na początku pliku, który spowodował .plik gitignore do zignorowania. Dla mnie pojawiły się dopiero po wpisaniu cat .gitignore
, co pokazało:
��# Built application files
*.apk
*.ap_
# ...
Nie mam pojęcia, jak się tam znalazły, ale odtworzenie pliku naprawiło problem. Analiza szesnastkowa uszkodzonego pliku
user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000 ..#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000 B.u.i.
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-01-08 02:15:35
Jedną rzeczą, na którą warto zwrócić uwagę, jest to, czy ratujesz swoje .plik gitignore z poprawnymi zakończeniami linii?
Okna: Jeśli używasz go w systemie windows, czy zapisujesz go z zakończeniami linii systemu windows? Nie wszystkie programy będą to robić domyślnie, notepad++ i wiele edytorów php domyślnie kończy się Linuksem, więc pliki będą kompatybilne z serwerem. Jednym z łatwych sposobów, aby to sprawdzić, jest otwarcie pliku w notatniku windows. Jeśli wszystko pojawia się w jednej linii, wtedy plik został zapisany z linuksową linią zakończenia.
LINUX: Jeśli masz problemy z działaniem pliku w środowisku linux. Otwórz plik w edytorze takim jak emacs lub nano. Jeśli widzisz znaki niedrukowalne, plik został zapisany z zakończeniami linii systemu windows.
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
2015-06-26 16:29:47
Ok, więc w moim przypadku przyjęte rozwiązanie nie zadziałało, a to co zadziałało jest opisane tutaj:
Https://ericnelson.wordpress.com/2014/06/21/is-visual-studio-2013-ignoring-your-gitignore-file/
W skrócie:
- Zamknij Visual Studio.
- przejdź do swojego .git folder
- Usuń ms-persist.xml
- Restart Visual Studio
Hope this helps somebody sometime
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-03-29 10:41:30
Po prostu usunąłem folder lub plik, który zatwierdził wcześniej w git, wykonując polecenie, a następnie plik gitignore będzie odzwierciedlał poprawne pliki.
git rm -r -f "folder or files insides"
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-04-10 08:13:02
The .plik gitignore nie będzie działał, jeśli masz komentarze w wierszu, takie jak:
foo/bar # The bar file contains sensitive data so we don't want to make this public
Zmień to na to:
# The bar file contains sensitive data so we don't want to make this public
foo/bar
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-09-28 20:18:20
Miałem z tym mały problem. Udało mi się udać do www.GitHub.com/project i usuń plik za pomocą interfejsu użytkownika i dodaj tę zmianę do głównego repo.
Wygląda na to, że dodałem plik do repo, zanim zrobiłem .gitignore. To chyba działa.
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-12-01 20:08:27
Jeśli jesteś użytkownikiem Notepad++, spróbuj wykonać następujące czynności:
Otwórz swoje .plik gitignore używając Notepad++ i do:
Edycja > Konwersja EOL > Format Windows > Zapisz
Spróbuj ponownie użyć git status i sprawdź, czy działa.
Odpowiedź na podobne pytanie zamieściłem tutaj .
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:42:11
Dla mnie był to kolejny problem. Ojej .gitignore jest ustawiony, aby ignorować wszystko, z wyjątkiem rzeczy, które mówię, aby nie ignorować. Jak takie:
/*
!/content/
Teraz to oczywiście oznacza, że mówię również gitowi, aby zignorował .gitignore. Co nie było problemem, dopóki nie śledziłem .gitignore. Ale w pewnym momencie podjąłem decyzję .gitignore. To doprowadziło do .gitignore jest właściwie ignorowany.
Więc dodanie jeszcze jednej linii naprawiło to:
/*
!/content/
!.gitignore
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 19:41:28