Jak mogę zignorować katalogi lub foldery w Git, używając msysgit w systemie Windows?
.gitkeep) do wskazania katalogu, który powinien być przechowywany
/na końcu wiadomo, że jest to katalog, który powinien zignorować?
Jak mogę zignorować katalogi lub foldery w Git, używając msysgit w systemie Windows?
.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 .gitignorew katalogu swojego projektu. Zignoruj katalogi, wprowadzając nazwę katalogu do pliku (z dołączonym ukośnikiem):
dir_to_ignore/
Więcej informacji tutaj .
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”
".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
.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))~/.gitignore_globali uruchomienie w git config --global core.excludesfile ~/.gitignore_globalcelu 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 .
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”.
.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
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.
type nul > .gitignoreutworzyć pusty plik
.gitignore.gdy rozszerzenia plików nie są ukryte w Eksploratorze Windows
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
Dlatego użyj „-f”, aby wymusić dodanie:
$ git add path/to/folder/.gitignore -f
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ć.
Na wypadek, gdybyś musiał wykluczyć podkatalogi, możesz użyć **symbolu wieloznacznego, aby wykluczyć dowolny poziom podkatalogu.
**/build/output/Debug/
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
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
Cel
Najwyższy poziom .gitignore (/root/.gitignore)
Zignorowany katalog .gitignore (/root/dirB.gitignore)
I to takie proste :)
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.
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 :)
Więcej informacji: .gitignore
Możesz utworzyć plik „.gitignore” z zawartością:
*
!.gitignore
Mi to pasuje.
Mam problemy z pobraniem .gitignorepliku przez system Git w systemie Windows. $GIT_DIR/info/excludePlik zawsze wydaje się działać, choć.
Wadą tego podejścia jest jednak to, że pliki w $GIT_DIRkatalogu nie są uwzględniane przy zameldowaniu, a zatem nie są udostępniane.
ps
$GIT_DIRto zwykle ukryty folder o nazwie.git
Zakładam, że problem polega na tym, że twoje drzewo robocze wygląda jak:
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
... 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.)
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”
echo "Data/passwords.txt" >> .gitignore.
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
Po prostu utwórz .gitignoreplik w folderze projektu, a następnie dodaj w nim nazwę folderu, na przykład:
frontend/node_modules