Czy chcesz, aby folder pamięci podręcznej został całkowicie wykluczony z repozytorium, czy tylko jego zawartość?
Gareth
1
Zgaduję, że OP ma wiele katalogów pamięci podręcznej, których zawartość należy zignorować, ale chce się upewnić, że te katalogi zostaną utworzone dla każdego, kto klonuje repozytorium.
Mark Longair,
@Gareth: skoro puste foldery nie są śledzone za pomocą git, jeśli zawartość zostanie zignorowana, folder również będzie, prawda?
eckes
3
Wspomniałem tylko, że ponieważ niektóre osoby używają ukrytych plików (zwykle .gitkeep) do wskazania katalogu, który powinien być przechowywany
Gareth
2
czy /na końcu wiadomo, że jest to katalog, który powinien zignorować?
Charlie Parker
Odpowiedzi:
1594
Utwórz plik o nazwie .gitignorew katalogu swojego projektu. Zignoruj katalogi, wprowadzając nazwę katalogu do pliku (z dołączonym ukośnikiem):
W poleceniu cmd systemu Windows możesz użyć polecenia „edytuj .gitignore” lub „notatnika .gitignore”, aby utworzyć poprawny plik.
Joey Green,
44
Możesz też użyć polecenia „touch .gitignore” z poziomu wiersza polecenia git bash w systemie Windows, aby utworzyć poprawnie nazwany plik, który z kolei można edytować za pomocą notatnika lub podobnego ...
SGB
39
Lub po prostu utwórz plik o nazwie .gitignore. w Eksploratorze i edytuj go za pomocą notatnika (kropka końcowa zostanie usunięta). W ten sposób nie musisz używać wiersza polecenia.
P. Galbraith,
6
Lub możesz vim .gitignore z terminala. :)
MollyCat,
34
Lub, co zaskakująco nie zostało wspomniane, nawet jeśli jest to najszybszy sposób, po prostu wpisz „echo folder_to_ignore >> .gitignore” w konsoli.
Godsmith,
205
Domyślnie Eksplorator Windows wyświetla się, .gitignoregdy tak naprawdę jest to nazwa pliku .gitignore.txt.
Git nie będzie używać .gitignore.txt
Nie można zmienić nazwy pliku na .gitignore, ponieważ Eksplorator Windows uważa, że jest to plik typu gitignore bez nazwy.
Rozwiązanie inne niż wiersz poleceń:
Możesz zmienić nazwę pliku na „.gitignore”. , i utworzy „.gitignore”
To działa? Zawsze po prostu mówiłem ludziom, aby otworzyli notatnik iw oknie dialogowym Zapisz jako wpisz nazwę pliku otoczoną podwójnymi cudzysłowami, więc na przykład ".gitignore"zapisuje ją bez automatycznego dodawania rozszerzenia.
Arrowmaster
9
Schludny. Uwzględnienie okresu końcowego działa. Explorer usuwa ostatni okres, w wyniku czego powstaje plik o nazwie „.gitignore”. Myślę, że metoda cytatów jest jednak czystsza i rzadziej powoduje niespodzianki.
Triynko
4
Lub w oknie dialogowym Zapisz jako zmień typ pliku na „Wszystkie pliki ( . )” - wtedy system Windows nie doda żadnego rozszerzenia.
Osakaebebeb
5
lub w git bash po prostu wpisz „touch .gitignore” w swoim folderze
Rayjax
3
".gitignore."- To świetna sztuczka! Zawsze miałem też problemy .htaccess...
Obmerk Kronen 19.04.16
105
Wydaje się, że do ignorowania plików i katalogów istnieją dwa główne sposoby:
.gitignore
Umieszczanie .gitignorepliku w katalogu głównym repozytorium poza .gitfolderem (w systemie Windows upewnij się, że widzisz prawdziwe rozszerzenie pliku, a następnie dodaj .gitignore.(z punktem na końcu, aby zrobić puste rozszerzenie pliku))
Wykonanie konfiguracji globalnej ~/.gitignore_globali uruchomienie w git config --global core.excludesfile ~/.gitignore_globalcelu dodania tego do konfiguracji Git
Uwaga: pliki śledzone wcześniej można wyśledzić przez uruchomienie git rm --cached filename
Wyłączenie repozytorium - w przypadku plików lokalnych, które nie muszą być współużytkowane, wystarczy dodać do pliku wzór pliku lub katalog .git/info/exclude. Te reguły nie są zatwierdzone, więc nie są widoczne dla innych użytkowników . Więcej informacji tutaj .
Aby zrobić wyjątki na liście ignorowanych plików, zobacz to pytanie .
dobra robota, wskazując git rm --cached <filename>. Absolutnie krytyczne dla repozytoriów, które istniały PRZED stworzeniem.gitignore
MaurerPower
2
git rm --cached <nazwa_pliku> naprawił problem, który miałem z
.gitignore
1
Tak, git rm - buforowana nazwa pliku jest absolutnie niezbędna. Doprowadzało mnie to do szaleństwa, ponieważ git wciąż wyświetlał pliki, które wyraźnie powiedziałem, że jestem ignorowany (utworzony gitignore po pierwszym zatwierdzeniu). Dziękuję Ci bardzo!
Potaito,
1
Rozwiązałem mój problem. Git śledził folder dostawcy w moim repozytorium laravel, mimo że dodałem folder dostawcy w gitignore. Wielkie dzięki.
lub po prostu dodaj dodatkową .na końcu, aby odkrywca przestał myśleć, że .gitignoreto rozszerzenie. Następnie przy wejściu ta kropka bez rozszerzenia zostaje zjedzona i zostajesz z .gitignore TL; DR: spróbuj nazwać to .gitignore.=> .gitignore
kończysz na
43
Aby poinstruować Git, aby ignorował niektóre pliki lub foldery, musisz utworzyć .gitignoreplik.
Ale w Eksploratorze Windows musisz podać nazwę pliku. Po prostu nie można utworzyć pliku z rozszerzeniem. Sztuczka polega na tym, że utwórz pusty plik tekstowy i przejdź do wiersza polecenia i zmień nazwę pliku na .gitignore:
ren "New Text Document.txt" .gitignore
Teraz otwórz plik w swoim ulubionym edytorze tekstu i dodaj nazwy plików / folderów, które chcesz zignorować. Można również użyć symboli wieloznacznych, takich jak ten: *.txt.
Lub po prostu wywołaj plik, .gitignore.gdy rozszerzenia plików nie są ukryte w Eksploratorze Windows
Vairis
22
Jeśli chcesz zachować folder, a nie znajdujące się w nim pliki, po prostu umieść plik „.gitignore” w folderze z „*” jako zawartością. Ten plik spowoduje, że Git zignoruje całą zawartość z repozytorium. Ale .gitignorezostaną uwzględnione w twoim repozytorium.
$ git add path/to/folder/.gitignore
Jeśli dodasz pusty folder, otrzymasz tę wiadomość (.gitignore to ukryty plik)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
W systemie Windows istnieje dodatkowy haczyk z ukośnikami. Z wyłączeniem jednego katalogu w .gitignore z
dir_to_exclude /
prawdopodobnie będzie działać, ale z wyłączeniem wszystkich katalogów z
/
powoduje problemy, gdy masz w katalogu nazwy plików ze spacjami (np. my file.txt): Git Bash unika tych spacji ukośnikiem odwrotnym (jak my\ file.txt), a Git dla Windows nie rozróżnia między /i \.
Aby wykluczyć wszystkie katalogi, lepiej użyj:
** /
Dwie kolejne gwiazdki oznaczają zawartość katalogu.
Również w \.git\infokatalogu projektów znajduje się plik wykluczający, który jest faktycznie tym samym co .gitignore(myślę). Możesz dodawać pliki i katalogi, aby je zignorować.
Gdy wszystko inne zawiedzie, spróbuj edytować plik
/.git/info/exclude
i dodając katalogi, które chcesz na końcu pliku, w ten sposób:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
Dodałem foldery „zasoby” i „skompilowane” do listy plików i katalogów do zignorowania.
Używam Atomu w systemie Windows 10. Działa! Dzięki stary!
Putu De
Wypróbowałem wszystkie pozostałe w mojej obecnej konfiguracji i to była moja ostateczna ostateczna odpowiedź.
Xedret
9
W systemie Unix:
touch .gitignore
W systemie Windows:
echo > .gitignore
Te polecenia wykonane w terminalu utworzą .gitignoreplik w bieżącej lokalizacji.
Następnie po prostu dodaj informacje do tego .gitignorepliku (na przykład za pomocą Notepad ++), które pliki lub foldery powinny zostać zignorowane. Zapisz swoje zmiany. Otóż to :)
... z tym, .gitignoreco opisujesz. To da ci git statuswynik jak:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... jeśli te index.htmlpliki nie zostały jeszcze dodane do repozytorium. (Git widzi, że w katalogach pamięci podręcznej znajdują się niezauważone pliki, ale zgłasza tylko katalogi). Aby to naprawić, upewnij się, że index.htmlpliki zostały dodane i zatwierdzone :
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... a wtedy twój git statuswyglądać będzie następująco:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(Oczywiście, że też chcesz popełnić .gitignore. Byłem po prostu leniwy w tym przypadku testowym.)
Prawdopodobnie nie chcą popełnić .gitignore szczególnie jak jesteś prawdopodobnie chcesz śledzić zmiany do niego i tak jest twój zespół (jeśli pracujesz z jednym). Zobacz stackoverflow.com/a/767213/123033
Dave Everitt
2
@Dave Everitt: Właśnie dlatego powiedziałem: „Oczywiście, że też chcesz popełnić .gitignore”.
Mark Longair
6
W systemach Windows i Mac, jeśli chcesz zignorować folder o nazwie Flower_Data_Folder w bieżącym katalogu, możesz:
echo Flower_Data_Folder >> .gitignore
Jeśli jest to plik o nazwie data.txt:
echo data.txt >> .gitignore
Jeśli jest to ścieżka taka jak „Data / passwords.txt”
Miałem podobne problemy. Pracuję na łańcuchu narzędzi systemu Windows ze współdzielonym repozytorium z facetami z Linuksa i chętnie tworzą pliki o takich samych (z wyjątkiem wielkości liter) nazwach w danym folderze.
Efektem jest to, że mogę sklonować repozytorium i natychmiast mieć dziesiątki „zmodyfikowanych” plików, które, jeśli się zaloguję, spowodują spustoszenie.
W systemie Windows ustawiono rozróżnianie wielkości liter i Git nie ignoruje wielkości liter, ale nadal nie działa (najwyraźniej w wywołaniach interfejsu API Win32).
Jeśli gitignore plików, to muszę pamiętać, aby nie śledzić pliku .gitignore.
Link wydaje się być uszkodzony (najpierw przekierowuje do wersji „https”): „Błąd bezpiecznego połączenia. Wystąpił błąd podczas połączenia z archive.robwilkerson.org. PR_END_OF_FILE_ERROR”
Peter Mortensen
0
Po prostu utwórz .gitignoreplik w folderze projektu, a następnie dodaj w nim nazwę folderu, na przykład:
.gitkeep
) do wskazania katalogu, który powinien być przechowywany/
na końcu wiadomo, że jest to katalog, który powinien zignorować?Odpowiedzi:
Utwórz plik o nazwie
.gitignore
w katalogu swojego projektu. Zignoruj katalogi, wprowadzając nazwę katalogu do pliku (z dołączonym ukośnikiem):Więcej informacji tutaj .
źródło
Domyślnie Eksplorator Windows wyświetla się,
.gitignore
gdy tak naprawdę jest to nazwa pliku.gitignore.txt
.Git nie będzie używać
.gitignore.txt
Nie można zmienić nazwy pliku na
.gitignore
, ponieważ Eksplorator Windows uważa, że jest to plik typu gitignore bez nazwy.Rozwiązanie inne niż wiersz poleceń:
źródło
".gitignore"
zapisuje ją bez automatycznego dodawania rozszerzenia.".gitignore."
- To świetna sztuczka! Zawsze miałem też problemy.htaccess
...Wydaje się, że do ignorowania plików i katalogów istnieją dwa główne sposoby:
.gitignore
.gitignore
pliku w katalogu głównym repozytorium poza.git
folderem (w systemie Windows upewnij się, że widzisz prawdziwe rozszerzenie pliku, a następnie dodaj.gitignore.
(z punktem na końcu, aby zrobić puste rozszerzenie pliku))~/.gitignore_global
i uruchomienie wgit config --global core.excludesfile ~/.gitignore_global
celu dodania tego do konfiguracji GitUwaga: pliki śledzone wcześniej można wyśledzić przez uruchomienie
git rm --cached filename
Wyłączenie repozytorium - w przypadku plików lokalnych, które nie muszą być współużytkowane, wystarczy dodać do pliku wzór pliku lub katalog
.git/info/exclude
. Te reguły nie są zatwierdzone, więc nie są widoczne dla innych użytkowników . Więcej informacji tutaj .Aby zrobić wyjątki na liście ignorowanych plików, zobacz to pytanie .
źródło
git rm --cached <filename>
. Absolutnie krytyczne dla repozytoriów, które istniały PRZED stworzeniem.gitignore
Miałem pewne problemy utworzeniu pliku w Eksploratorze Windows z
.
początku.Obejściem problemu było przejście do powłoki poleceń i utworzenie nowego pliku za pomocą „edit”.
źródło
.
na końcu, aby odkrywca przestał myśleć, że.gitignore
to rozszerzenie. Następnie przy wejściu ta kropka bez rozszerzenia zostaje zjedzona i zostajesz z.gitignore
TL; DR: spróbuj nazwać to.gitignore.
=>.gitignore
Aby poinstruować Git, aby ignorował niektóre pliki lub foldery, musisz utworzyć
.gitignore
plik.Ale w Eksploratorze Windows musisz podać nazwę pliku. Po prostu nie można utworzyć pliku z rozszerzeniem. Sztuczka polega na tym, że utwórz pusty plik tekstowy i przejdź do wiersza polecenia i zmień nazwę pliku na
.gitignore
:Teraz otwórz plik w swoim ulubionym edytorze tekstu i dodaj nazwy plików / folderów, które chcesz zignorować. Można również użyć symboli wieloznacznych, takich jak ten:
*.txt
.źródło
type nul > .gitignore
utworzyć pusty plik.gitignore.
gdy rozszerzenia plików nie są ukryte w Eksploratorze WindowsJeśli chcesz zachować folder, a nie znajdujące się w nim pliki, po prostu umieść plik „.gitignore” w folderze z „*” jako zawartością. Ten plik spowoduje, że Git zignoruje całą zawartość z repozytorium. Ale
.gitignore
zostaną uwzględnione w twoim repozytorium.Jeśli dodasz pusty folder, otrzymasz tę wiadomość (.gitignore to ukryty plik)
Dlatego użyj „-f”, aby wymusić dodanie:
źródło
W systemie Windows istnieje dodatkowy haczyk z ukośnikami. Z wyłączeniem jednego katalogu w .gitignore z
prawdopodobnie będzie działać, ale z wyłączeniem wszystkich katalogów z
powoduje problemy, gdy masz w katalogu nazwy plików ze spacjami (np.
my file.txt
): Git Bash unika tych spacji ukośnikiem odwrotnym (jakmy\ file.txt
), a Git dla Windows nie rozróżnia między/
i\
.Aby wykluczyć wszystkie katalogi, lepiej użyj:
Dwie kolejne gwiazdki oznaczają zawartość katalogu.
źródło
Również w
\.git\info
katalogu projektów znajduje się plik wykluczający, który jest faktycznie tym samym co.gitignore
(myślę). Możesz dodawać pliki i katalogi, aby je zignorować.źródło
Na wypadek, gdybyś musiał wykluczyć podkatalogi, możesz użyć
**
symbolu wieloznacznego, aby wykluczyć dowolny poziom podkatalogu.źródło
Aby zignorować cały katalog w Git, najprostszym sposobem jest dołączenie pliku .gitignore do katalogu docelowego, który zawiera po prostu „*”.
Ilustrujący przykład
Przykładowy system
Cel
Najwyższy poziom .gitignore (/root/.gitignore)
Zignorowany katalog .gitignore (/root/dirB.gitignore)
I to takie proste :)
źródło
Gdy wszystko inne zawiedzie, spróbuj edytować plik
i dodając katalogi, które chcesz na końcu pliku, w ten sposób:
Dodałem foldery „zasoby” i „skompilowane” do listy plików i katalogów do zignorowania.
źródło
W systemie Unix:
W systemie Windows:
Te polecenia wykonane w terminalu utworzą
.gitignore
plik w bieżącej lokalizacji.Następnie po prostu dodaj informacje do tego
.gitignore
pliku (na przykład za pomocą Notepad ++), które pliki lub foldery powinny zostać zignorowane. Zapisz swoje zmiany. Otóż to :)Więcej informacji: .gitignore
źródło
Możesz utworzyć plik „.gitignore” z zawartością:
Mi to pasuje.
źródło
Mam problemy z pobraniem
.gitignore
pliku przez system Git w systemie Windows.$GIT_DIR/info/exclude
Plik zawsze wydaje się działać, choć.Wadą tego podejścia jest jednak to, że pliki w
$GIT_DIR
katalogu nie są uwzględniane przy zameldowaniu, a zatem nie są udostępniane.źródło
Zakładam, że problem polega na tym, że twoje drzewo robocze wygląda jak:
... z tym,
.gitignore
co opisujesz. To da cigit status
wynik jak:... jeśli te
index.html
pliki nie zostały jeszcze dodane do repozytorium. (Git widzi, że w katalogach pamięci podręcznej znajdują się niezauważone pliki, ale zgłasza tylko katalogi). Aby to naprawić, upewnij się, żeindex.html
pliki zostały dodane i zatwierdzone :... a wtedy twój
git status
wyglądać będzie następująco:(Oczywiście, że też chcesz popełnić
.gitignore
. Byłem po prostu leniwy w tym przypadku testowym.)źródło
W systemach Windows i Mac, jeśli chcesz zignorować folder o nazwie Flower_Data_Folder w bieżącym katalogu, możesz:
Jeśli jest to plik o nazwie
data.txt
:Jeśli jest to ścieżka taka jak „Data / passwords.txt”
źródło
Miałem podobne problemy. Pracuję na łańcuchu narzędzi systemu Windows ze współdzielonym repozytorium z facetami z Linuksa i chętnie tworzą pliki o takich samych (z wyjątkiem wielkości liter) nazwach w danym folderze.
Efektem jest to, że mogę sklonować repozytorium i natychmiast mieć dziesiątki „zmodyfikowanych” plików, które, jeśli się zaloguję, spowodują spustoszenie.
W systemie Windows ustawiono rozróżnianie wielkości liter i Git nie ignoruje wielkości liter, ale nadal nie działa (najwyraźniej w wywołaniach interfejsu API Win32).
Jeśli gitignore plików, to muszę pamiętać, aby nie śledzić pliku .gitignore.
Ale znalazłem tutaj dobrą odpowiedź:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
źródło
Po prostu utwórz
.gitignore
plik w folderze projektu, a następnie dodaj w nim nazwę folderu, na przykład:źródło