Zignoruj.sam plik gitignore

Właśnie zrobiłem git init na korzeniu mojego nowego projektu.

Następnie utworzyłem .gitignore plik.

Teraz, kiedy piszę git status, .plik gitignore pojawia się na liście plików nie śledzonych. Dlaczego?

Author: Arslan Ali, 2009-04-20

19 answers

Plik .gitignore powinien znajdować się w Twoim repozytorium, więc rzeczywiście powinien być dodawany i zatwierdzany, jak sugeruje git status. Musi być częścią drzewa repozytorium, aby zmiany w nim mogły być scalane i tak dalej.

Więc dodaj go do swojego repozytorium, nie powinno być gitignored.

Jeśli naprawdę chcesz, możesz dodać .gitignore do pliku .gitignore, jeśli nie chcesz, aby został popełniony. Jednak w takim przypadku prawdopodobnie lepiej jest dodać ignores do .git/info/exclude, specjalnego pliku checkout-local, który działa tak jak .gitignore, ale nie pojawia się w "git status", ponieważ znajduje się w folderze .git.

Zobacz też https://help.github.com/articles/ignoring-files

 880
Author: August Lilleaas,
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-01-02 10:24:30

Jeśli chcesz przechowywać listę ignorowanych plików poza drzewem Gita, możesz użyć .Git/info / exclude Plik. Jest on stosowany tylko do kasy repo.

 265
Author: Paweł Hajdan,
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
2011-04-06 14:25:43

Rzeczywiście można umieścić linię".gitignore "into your".gitignore " plik. To spowodowałoby".gitignore " plik do zignorowania przez git. Nie sądzę, żeby to był dobry pomysł. Myślę, że plik ignore powinien być kontrolowany i śledzony. Po prostu kładę to tam dla kompletności.

 70
Author: 1800 INFORMATION,
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
2009-04-20 07:58:37

Możesz również mieć plik global user git .gitignore, który automatycznie zastosuje się do wszystkich Twoich repo. Jest to przydatne dla plików IDE i edytorów (np. swp i *~ dla Vima). Zmień lokalizacje katalogów na pakiet systemu operacyjnego

  1. Dodaj do swojego pliku ~/.gitconfig

    [core]
    excludesfile = /home/username/.gitignore
    
  2. Tworzenie pliku ~/.gitignore z wzorcami plików do zignorowania

  3. Zapisz pliki dot w innym repo, aby mieć kopię zapasową (opcjonalnie).

Any time you skopiuj, init lub klon repo Twój globalny plik gitignore będzie również używany.

 49
Author: Alec the Geek,
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-20 03:46:14

Po dodaniu pliku .gitignore i zatwierdzeniu go, nie będzie on już widoczny na liście" pliki nie śledzone".

git add .gitignore
git commit -m "add .gitignore file"
git status
 38
Author: Greg Hewgill,
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
2009-04-20 06:50:37

Jeśli ktoś już dodał .gitignore do twojego repo, ale chcesz wprowadzić pewne zmiany i zignorować te zmiany, wykonaj następujące czynności:

git update-index --assume-unchanged .gitignore

Źródło .

 38
Author: Leif Gruenwoldt,
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
2011-02-09 20:19:07

Po prostu okryj kogoś innego takim samym bólem jak my. Chcieliśmy wykluczyć plik, który już został popełniony.

Ten post był o wiele bardziej przydatny: praca z .git / info / exclude too late

Aby zignorować plik, musisz użyć polecenia git remove Zobacz git rm (http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )

Testujesz go idąc

git rm --dry-run *.log
(jeśli mówisz, że chcesz wykluczyć wszystkie pliki dziennika)

Wyświetli to, co będzie wyłączone, jeśli go uruchomisz.

Then

Uruchom go idąc

git rm *.log
(lub dowolna nazwa pliku ścieżka / wyrażenie, które chcesz)

Następnie dodaj linię *.log do pliku .gitignore.

 20
Author: Evolve,
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:45

Chodzi o to, aby umieścić pliki, które są specyficzne dla Twojego projektu w pliku .gitignore i (jak już wspomniano) dodać go do repozytorium. Na przykład pliki .pyc i .o, logi, które tworzy testsuite, niektóre urządzenia itp.

Dla plików, które tworzy twoja własna konfiguracja, ale które niekoniecznie będą widoczne dla każdego użytkownika (np. pliki .swp Jeśli używasz Vima, ukrytych katalogów ecplise i tym podobnych), powinieneś użyć .git/info/exclude (Jak już wspomniano).

 15
Author: bayer,
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-07-21 11:51:41

Oczywiście .plik gitignore wyświetla się na statusie, ponieważ nie jest śledzony, a git widzi go jako nowy smaczny plik do zjedzenia!

Od .gitignore jest nie śledzonym plikiem, jednak jest to kandydat do zignorowania przez Gita, gdy go umieścisz .gitignore!

Więc odpowiedź jest prosta: wystarczy dodać wiersz:

.gitignore # Ignore the hand that feeds!

Do twojego .plik gitignore!

[1]}i, wbrew odpowiedzi Augusta, powinienem powiedzieć, że to nie jest to, żeplik gitignore powinien {[11] } być w Twoim repozytorium. Zdarza się, że Może być, co często jest wygodne. I to prawdopodobnie prawda, że to jest powód .gitignore powstał jako alternatywa dlagit / info / exclude, który nie ma opcji śledzenia przez repozytorium. W każdym razie, jak używasz swojego .plik gitignore zależy całkowicie od Ciebie.

Dla odniesienia, sprawdź gitignore (5) strona Man on kernel.org.

 14
Author: chase,
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
2009-06-11 20:01:50

Po pierwsze, jak już wielu innych powiedziało, Twój .gitignore powinny być śledzone przez Git (i dlatego nie powinny być ignorowane). Pozwól mi wyjaśnić dlaczego.

(TL;DR: Zatwierdź plik .gitignore i użyj globalnego .gitignore aby zignorować pliki utworzone przez IDE lub system operacyjny)

Git jest, jak zapewne już wiesz, rozproszonym systemem kontroli wersji . Oznacza to, że pozwala na przełączanie się między różnymi wersjami (nawet jeśli rozwój rozszedł się w różnych gałęziach), a także pozwala wielu programistom pracować nad tym samym projektem.

Chociaż śledzenie twojego .gitignore ma również zalety, gdy przełączasz się między migawkami, najważniejszym powodem jego zatwierdzania jest to, że będziesz chciał udostępnić plik innym programistom, którzy pracują nad tym samym projektem. Zatwierdzając plik do Git, inni autorzy automatycznie otrzymają plik .gitignore podczas klonowania repozytorium, więc nie będą musieli martw się o przypadkowe popełnienie pliku, który nie powinien być dopuszczony (np. pliki dziennika, katalogi pamięci podręcznej, poświadczenia bazy danych itp.). A jeśli w pewnym momencie .gitignore projektu zostanie zaktualizowany, mogą po prostu pobrać te zmiany zamiast ręcznie edytować plik.

Oczywiście, będą pewne pliki i foldery, które będziesz chciał zignorować, ale które są specyficzne dla Ciebie i nie dotyczą innych programistów. Jednak nie powinny one znajdować się w projekcie .gitignore. Są dwa inne miejsca, w których można ignorować pliki i foldery:

  • pliki i foldery utworzone przez system operacyjny lub IDE powinny być umieszczone w globalnym .gitignore. Zaletą jest to, że to .gitignore jest stosowane do wszystkich repozytoriów na twoim komputerze, więc nie musisz tego powtarzać dla każdego repozytorium. I nie jest udostępniany innym programistom, ponieważ mogą używać innego systemu operacyjnego i / lub IDE.
  • pliki, które nie należą do projektu .gitignore, ani w globalnym .gitignore, może być ignorowane za pomocą jawnego repozytorium wyklucza w your_project_directory/.git/info/exclude. Ten plik nie będzie udostępniany innym programistom i jest specyficzny dla tego pojedynczego repozytorium
 14
Author: Nic Wortel,
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-11-12 08:55:23

Uważaj na następujący "problem" czasami chcesz dodać katalogi, ale żadnych plików w tych katalogach. Prostym rozwiązaniem jest stworzenie ... gitignore o następującej treści:

*

To szwy działać dobrze, dopóki nie zdajesz sobie sprawy, że katalog nie został dodany (zgodnie z oczekiwaniami do repozytorium. Powodem tego jest to, że .gitignore również zostanie zignorowane, a tym samym katalog jest pusty. Dlatego powinieneś zrobić coś takiego:

*
!.gitignore
 10
Author: Maze,
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
2011-07-19 12:46:58

Wydaje się, że to działa tylko dla bieżącego katalogu, aby uzyskać Git ignorować wszystkie pliki z repozytorium.

Update this file

.git/info/exclude 

Z Twoją dziką kartą lub nazwą pliku

*pyc
*swp
*~
 7
Author: Naskov,
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
2013-07-09 11:36:24

W moim przypadku chcę wykluczyć istniejący plik. Tylko modyfikowanie .gitignore nie działa. Wykonałem te kroki:

git rm --cached dirToFile/file.php
vim .gitignore
git commit -a

W ten sposób wyczyściłem z pamięci podręcznej plik, który chciałem wykluczyć i po dodaniu go do .gitignore .

 4
Author: Andrea Perdicchia,
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-05-05 09:44:56

Przejdź do katalogu bazowego twojego Git repo i wykonaj następujące polecenie:

echo '\\.*' >> .gitignore

Wszystkie pliki dot będą ignorowane, łącznie z tym nieznośnym .DS_Store jeśli jesteś na Macu.

 3
Author: weffen,
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
2013-06-28 16:51:28

Jeśli już się zameldowałeś .gitignore i chcesz zignorować modyfikacje w nim, sprawdź ta ODPOWIEDŹ :

Spróbuj użyć tego polecenia:

git update-index --assume-unchanged FILENAME_TO_IGNORE

Aby go odwrócić (jeśli kiedykolwiek chcesz zatwierdzić zmiany), użyj:

git update-index --no-assume-unchanged

UPDATE :

Oto Jak wyświetlić 'zakładaj niezmienione' pliki pod bieżącym katalog:

git ls-files -v | grep -E "^[a-z]"

Jako że opcja -v użyje małych liter dla "zakładaj bez zmian" pliki.

 3
Author: Aaron,
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:10:41

Jest całkiem możliwe, że użytkownik końcowy chce, aby Git zignorował".gitignore " tylko dlatego, że katalogi IDE utworzone przez Eclipse prawdopodobnie nie są takie same jak NetBeans czy inne IDE. Aby zachować antagonistyczny kod źródłowy IDE, łatwiej jest mieć niestandardowy Git ignore, który nie jest udostępniany całemu zespołowi, ponieważ poszczególni programiści mogą używać różnych IDE.

 1
Author: John Brown,
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
2013-03-13 03:32:07

Myślę, że są sytuacje, w których ignorowaniegitignore jest bardzo przydatny. Na przykład, gdy masz wiele zespołów lub duży zespół pracujący na tej samej bazie kodu. W takim przypadku, musisz mieć pewne konwencje, jedna z nich dotyczy tego, co jest ignorowane w repo git. Zwykle chodzi o ignorowanie plików i katalogów utworzonych przez IDE lub OS, generowanych logów itp.

Istnieje jednak siła, która dąży do wprowadzenia niekonwencjonalnych zmian .gitignore plik. Plik .gitignore może być dalej zmieniany przez nieodpowiedzialną osobę, przez pomyłkę, przez użyte narzędzie lub w innym przypadku.

Aby mieć siłę przeciwną do tego, możemy zrobić jak następuje:

  1. inicjał .gitignore powinien odzwierciedlać konwencję w zespole (zespołach),
  2. po wypchnięciu,gitignore należy zabezpieczyć poprzez dodanie .gitignore wejście i wcisnąć tę zmianę ponownie.Plik .gitignore to " sealed " w ten sposób.

The "sealed " .gitignore plik może być zmieniany, tylko lokalnie, bez rozprzestrzeniania tego zmieniacza na innych członków zespołu(ów). Jeśli jednak zmiana jest powszechnie uzgodniona w całym zespole(zespołach), możliwe jest jej "odblokowanie", zmiana i ponowne" zapieczętowanie". Nie można tego zrobić przez pomyłkę, tylko celowo.

Niestety, nie możesz być w 100% chroniony przed głupotą, ale w ten sposób zrobiłeś wszystko, co w twojej mocy, aby zapobiec głupocie.

Jeśli masz stosunkowo mały zespół z bardzo dobrym profesjonaliści, niż to nie byłoby ważne, ale nawet ci faceci doceniliby mieć jedną rzecz mniej martwić.

Korzystanie z .git/info/exclude jest fajne, gdy nie można nic zrobić z ustawieniami infrastruktury, wystarczy zakryć własne a**, aby nie popełnić błędu.

Z punktu widzenia tego, co jest dobre, a co złe, głosuję za posiadaniem .wpis gitignore w pliku .gitignore, dający każdemu wolność robienia lokalnie, co tylko chce, ale nie atakujący innych.

 1
Author: Sasa,
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-08-30 13:38:55

Odkryłem, że najlepszym miejscem do Ustawienia ignorowania do nieznośnych plików .DS_Store jest plik .git/info/exclude.

IntelliJ robi to automatycznie, gdy skonfigurujesz w nim repozytorium git.

 0
Author: Stephen McConnell,
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-10-05 14:07:31

.gitignore polega na ignorowaniu innych plików. git jest o plikach, więc chodzi o ignorowanie plików. Jednakże, ponieważ git działa poza plikami, ten plik musi być tam jako mechanizm do wyświetlania innych nazw plików.

Gdyby to było nazwane {[1] } to byłoby trochę bardziej oczywiste.

Analogia to lista rzeczy do zrobienia, których nie chcesz robić. Jeśli nie wymienisz ich gdzieś, jest to jakaś Lista "do zrobienia", o której nie będziesz wiedział.

 0
Author: Michael Durrant,
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-03-17 19:29:39