Właśnie zrobiłem git init
na podstawie mojego nowego projektu.
Potem utworzyłem .gitignore
plik.
Teraz, kiedy mam wpisać git status
, .gitignore plik pojawi się na liście plików nieśledzonej. Dlaczego?
git
version-control
dvcs
gitignore
Jacques René Mesrine
źródło
źródło
git add self && git commit -m "-1 for reverting existential depression" && git remote rm HEAD
how to gitignore .gitinore file
a pytanie i zaakceptowana odpowiedź nie są tak naprawdę związane z tytułem. Tytuł można poprawić.Odpowiedzi:
.gitignore
Plik powinien znajdować się w repozytorium, więc powinien rzeczywiście być dodawane i popełnione, jakgit status
sugeruje. 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 powinien być gitignored.
Jeśli naprawdę chcesz, możesz dodać
.gitignore
do.gitignore
pliku, jeśli nie chcesz, aby został zatwierdzony . Jednak w takim przypadku prawdopodobnie lepiej jest dodać ignorowanie.git/info/exclude
, specjalny plik lokalny kasy, który działa podobnie jak .gitignore, ale nie pojawia się w „statusie git”, ponieważ znajduje się w.git
folderze.Zobacz także https://help.github.com/articles/ignoring-files
źródło
Jeśli chcesz przechowywać listę ignorowanych plików poza drzewem Git, możesz użyć pliku .git / info / exclude . Jest stosowany tylko do realizacji transakcji repo.
źródło
~/.gitignore
więc są one ignorowane w każdym repozytorium, nad którym pracuję.git update-index --assume-unchanged <file>
aby zatrzymać śledzenie zmian bez zmiany repozytorium. Jest to bardzo przydatne w dużych współdzielonych projektach, w których musisz wprowadzić lokalne zmiany, ale nikt inny nie chce, aby twoje rzeczy były zaangażowane w repozytorium. Zobacz blog.pagebakers.nlMożesz umieścić wiersz
.gitignore
w swoim.gitignore
pliku. Spowodowałoby to.gitignore
zignorowanie pliku przez git. Nie sądzę, żeby to był dobry pomysł. Myślę, że plik ignorowania powinien być kontrolowany i śledzony w wersji. Po prostu umieszczam to tutaj dla kompletności.źródło
git rm --cached .gitignore
Możesz także mieć globalny
.gitignore
plik git użytkownika , który będzie automatycznie stosowany do wszystkich twoich repozytoriów. Jest to przydatne dla IDE i plików edytorze (npswp
i*~
pliki do Vima). Zmień lokalizacje katalogów w zależności od systemu operacyjnego.Dodaj do swojego
~/.gitconfig
pliku:Utwórz
~/.gitignore
plik z wzorami plików, który chcesz zignorować.Zapisz pliki kropek w innym repozytorium, aby mieć kopię zapasową (opcjonalnie).
Za każdym razem, gdy kopiujesz, inicjujesz lub klonujesz repozytorium, twój globalny plik gitignore będzie również używany.
źródło
Jeśli ktoś już dodał
.gitignore
do Twojego repozytorium, ale chcesz wprowadzić pewne zmiany i zignorować te zmiany, wykonaj następujące czynności:git update-index --assume-unchanged .gitignore
Źródło .
źródło
.git/info/excludes
.--assume-unchanged
istnieje również powód . Dlaczego jedno jest lepsze od drugiego?.git/info/excludes
nie działa, jeśli plik jest już śledzony.Po dodaniu
.gitignore
pliku i zatwierdzeniu go nie będzie już wyświetlany na liście „nieśledzonych plików”.źródło
Wystarczy, że ktoś inny odczuje ten sam ból, co my. Chcieliśmy wykluczyć plik, który został już zatwierdzony.
Ten post był o wiele bardziej przydatny: zbyt późna praca z .git / info / exclude
Aby zignorować plik, należy użyć polecenia git remove Zobacz git rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )
testujesz to, przechodząc
git rm --dry-run *.log
(jeśli powiesz, że chcesz wykluczyć wszystkie pliki dziennika)
to wyświetli to , co byłoby wyłączone, gdybyś go uruchomił.
następnie
uruchamiasz go, przechodząc
git rm *.log
(lub dowolną ścieżkę / wyrażenie nazwy pliku)
Następnie dodaj
*.log
linię do swojego.gitignore
pliku.źródło
git status
jeśli pojawią się w przyszłości.Oczywiście plik .gitignore pokazuje status, ponieważ nie jest śledzony, a git widzi go jako smaczny nowy plik do jedzenia!
Ponieważ .gitignore jest plikiem nieśledzonym, kandydat może zostać zignorowany przez git, gdy umieścisz go w .gitignore!
Odpowiedź jest prosta: wystarczy dodać wiersz:
do pliku .gitignore!
I w przeciwieństwie do odpowiedzi Augusta, powinienem powiedzieć, że nie chodzi o to, że plik .gitignore powinien znajdować się w twoim repozytorium. Zdarza się, że tak może być, co często jest wygodne. I prawdopodobnie prawdą jest, że właśnie dlatego .gitignore został stworzony jako alternatywa dla .git / info / exclude, który nie ma opcji śledzenia przez repozytorium. W każdym razie sposób korzystania z pliku .gitignore zależy wyłącznie od Ciebie.
W celach informacyjnych sprawdź stronę man gitignore (5) na kernel.org.
źródło
Chodzi o to, aby umieścić w pliku pliki specyficzne dla twojego projektu
.gitignore
i (jak już wspomniano) dodać go do repozytorium. Na przykład.pyc
i.o
plików, rejestruje, że testsuite tworzy niektóre mecze itd.W przypadku plików tworzonych przez własną instalację, ale niekoniecznie pojawiających się dla każdego użytkownika (takich jak
.swp
pliki, jeśli używasz vima, ukrytych katalogów ecplise itp.), Powinieneś użyć.git/info/exclude
(jak już wspomniano).źródło
Po pierwsze, jak już wielu powiedziało, twój
.gitignore
powinien być śledzony przez Git (i dlatego nie powinien być ignorowany). Pozwól mi wyjaśnić dlaczego.(TL; DR: zatwierdzenie
.gitignore
pliku i użycie globalnego.gitignore
do zignorowania plików utworzonych przez IDE lub system operacyjny)Git jest, jak zapewne już wiesz, rozproszonym systemem kontroli wersji . Oznacza to, że pozwala przełączać się między różnymi wersjami (nawet jeśli programowanie zostało podzielone na różne gałęzie), a także umożliwia wielu programistom pracę nad tym samym projektem.
Chociaż śledzenie
.gitignore
plików ma również zalety przy przełączaniu między migawkami, najważniejszym powodem, dla którego warto je zatwierdzić, jest udostępnienie pliku innym programistom pracującym nad tym samym projektem. Przesyłając plik do Git, inni współtwórcy automatycznie otrzymają.gitignore
plik po sklonowaniu repozytorium, więc nie będą musieli martwić się przypadkowym zatwierdzeniem pliku, który nie powinien zostać zatwierdzony (np. Pliki dziennika, katalogi pamięci podręcznej, poświadczenia bazy danych itp.). A jeśli w pewnym momencie projekt.gitignore
zostanie zaktualizowany, mogą po prostu pobrać te zmiany zamiast ręcznie edytować plik.Oczywiście będą pewne pliki i foldery, które chcesz zignorować, ale są one specyficzne dla Ciebie i nie dotyczą innych programistów. Nie powinny one jednak znajdować się w projekcie
.gitignore
. Istnieją dwa inne miejsca, w których możesz ignorować pliki i foldery:.gitignore
. Zaletą jest to, że.gitignore
dotyczy to wszystkich repozytoriów na twoim komputerze, więc nie musisz powtarzać tego dla każdego repozytorium. I nie jest udostępniany innym programistom, ponieważ mogą używać innego systemu operacyjnego i / lub IDE..gitignore
ani do globalnego.gitignore
, można zignorować za pomocą jawnego wykluczenia repozytorium wyour_project_directory/.git/info/exclude
. Ten plik nie będzie udostępniany innym programistom i jest specyficzny dla tego pojedynczego repozytoriumźródło
.gitignore
.gitignore
działa tylko w przypadku ignorowania plików, które nie są jeszcze śledzone przez Git. Dodanie już śledzonego pliku.gitignore
nie uniemożliwi wprowadzenia zmian w tym pliku. Nawet gdyby to było możliwe, w jaki sposób popełniłbyś zmianę,.gitignore
gdy nakazuje Gitowi zignorowanie samego siebie?Uważaj na następujący „problem” Czasami chcesz dodać katalogi, ale nie ma plików w tych katalogach. Prostym rozwiązaniem jest utworzenie .gitignore o następującej treści:
Takie szwy działają dobrze, dopóki nie zorientujesz się, że katalog nie został dodany (zgodnie z oczekiwaniami do Twojego repozytorium. Powodem tego jest to, że .gitignore również zostanie zignorowany, a tym samym katalog będzie pusty. Dlatego powinieneś zrobić coś takiego: :
źródło
Wydaje się, że działa to tylko w przypadku bieżącego katalogu,
Git
aby zignorować wszystkie pliki z repozytorium.zaktualizuj ten plik
ze swoją dziką kartą lub nazwą pliku
źródło
Jeśli już zalogowałeś się .gitignore i chcesz zignorować jego modyfikacje, sprawdź tę odpowiedź :
źródło
W moim przypadku chcę wykluczyć istniejący plik. Tylko modyfikowanie .gitignore nie działa. Wykonałem następujące kroki:
W ten sposób wyczyściłem z pamięci podręcznej plik, który chciałem wykluczyć, i po dodaniu go do .gitignore .
źródło
Przejdź do katalogu podstawowego repozytorium git i wykonaj następujące polecenie:
Wszystkie pliki kropek zostaną zignorowane, w tym ten nieznośny plik .DS_Store, jeśli używasz komputera Mac.
źródło
Jest całkiem możliwe, że użytkownik końcowy chce, aby Git zignorował plik „.gitignore” po prostu dlatego, że foldery IDE utworzone przez Eclipse prawdopodobnie nie są takie same jak NetBeans lub inne IDE. Tak więc, aby zachować antagonistyczne podejście do kodu źródłowego IDE, łatwiej jest mieć niestandardowe ignorowanie git, które nie jest udostępniane całemu zespołowi, ponieważ indywidualni programiści mogą używać różnych IDE.
źródło
.gitignore
polega na ignorowaniu innych plików. git dotyczy plików, więc chodzi o ignorowanie plików. Jednak, ponieważ git działa na plikach, ten plik musi istnieć jako mechanizm wyświetlania innych nazw plików.Gdyby został nazwany
.the_list_of_ignored_files
, mogłoby to być nieco bardziej oczywiste.Analogią jest lista rzeczy do zrobienia, których NIE chcesz robić. Chyba, że gdzieś je gdzieś wymieniasz, istnieje jakaś lista rzeczy do zrobienia, o której się nie dowiesz.
źródło
Myślę, że są sytuacje, w których ignorowanie .gitignore jest bardzo przydatne. 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 git repo. Zwykle chodzi o ignorowanie plików i katalogów utworzonych przez IDE lub system operacyjny, niektóre wygenerowane dzienniki itp.
Istnieje jednak siła, która dąży do wprowadzenia niekonwencjonalnych zmian do
.gitignore
pliku..gitignore
Plik może być dodatkowo zmieniona przez nieodpowiedzialną osobę, przez pomyłkę, przez narzędzie, które jest używane, lub w innej sprawie.Aby uzyskać przeciwdziałanie temu, możemy wykonać następujące czynności:
.gitignore
Plik jest w ten sposób „ zapieczętowany ”.Plik „ zapieczętowany ”
.gitignore
można zmienić, tylko lokalnie, bez propagowania tych zmieniaczy do innych członków zespołu (zespołów). Jeśli jednak zmiana jest szeroko uzgodniona w całym zespole (zespołach), wówczas można ją „odblokować”, zmienić i ponownie „zapieczętować”. Tego nie da się 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, aby zapobiec głupotom.
Jeśli masz stosunkowo niewielki zespół z bardzo dobrymi profesjonalistami, nie byłoby to ważne, ale nawet ci faceci doceniliby mniejszą problem.
Używanie
.git/info/exclude
jest fajne, gdy nie możesz nic zrobić z ustawieniami infrastruktury, wystarczy zakryć własne **, aby się nie pomylić.Z punktu widzenia tego, co jest dobre, a co złe, głosuję za wprowadzeniem
.gitignore
pliku .gitignore do pliku, dając każdemu swobodę robienia na miejscu, co tylko chce, ale nie inwazji na innych.źródło
Odkryłem, że najlepszym miejscem do ustawienia ignorowania nieznośnych
.DS_Store
plików jest.git/info/exclude
plik.Wydaje się, że IntelliJ robi to automatycznie po skonfigurowaniu w nim repozytorium git.
źródło