Ignorowanie katalogów w repozytoriach Git w systemie Windows

Jak mogę ignorować katalogi lub foldery w Git używając msysgit w Windows?

Author: Peter Mortensen, 2008-12-05

19 answers

Utwórz plik o nazwie .gitignore w katalogu twojego projektu. Ignoruj katalogi, wpisując nazwę katalogu do pliku (z dołączonym ukośnikiem):

dir_to_ignore/

Więcej informacji jest tutaj .

 1742
Author: stew,
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
2019-11-14 13:48:32

Domyślnie Eksplorator Windows wyświetli .gitignore, gdy w rzeczywistości nazwa pliku to .gitignore.txt.

Git nie użyje .gitignore.txt

I nie możesz zmienić nazwy pliku na .gitignore, ponieważ Eksplorator Windows uważa, że jest to plik typu gitignore bez nazwy.

Rozwiązanie Non command line:

You can rename a file to ".gitignore.", and it will create ".gitignore"
 211
Author: brainwavedave,
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
2019-12-17 11:13:59

Wygląda na to, że do ignorowania plików i katalogów są dwa główne sposoby:

  1. .gitignore

    • umieszczenie pliku .gitignore w katalogu głównym repozytorium oprócz folderu .git (w systemie Windows upewnij się, że widzisz prawdziwe rozszerzenie pliku, a następnie utwórz .gitignore. (z punktem na końcu, aby utworzyć puste rozszerzenie pliku))
    • Tworzenie globalnej konfiguracji ~/.gitignore_global i uruchamianie git config --global core.excludesfile ~/.gitignore_global Aby dodać to do Twojego Gita konfiguracja

    Uwaga: wcześniej śledzone pliki mogą zostać usunięte przez uruchomienie git rm --cached filename

  2. Repozytorium exclude - dla plików lokalnych, które nie muszą być udostępniane, wystarczy dodać wzorzec pliku lub katalog do pliku .git/info/exclude. Zasady te nie są popełniane, więc nie są widziane przez innych użytkowników . Więcej informacji jest tutaj .

Aby wprowadzić wyjątki na liście ignorowanych plików, zobacz to pytanie .

 114
Author: Vairis,
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
2019-11-14 14:01:20

Miałem pewne problemy z tworzeniem pliku w Windows Explorer z . na początku.

Obejściem było przejście do powłoki poleceń i utworzenie nowego pliku za pomocą opcji "Edytuj".

 45
Author: sf.,
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
2019-11-14 13:50:23

Aby polecić Gitowi ignorowanie pewnych plików lub folderów, musisz utworzyć .gitignore plik.

Ale w Eksploratorze Windows musisz podać nazwę pliku. Po prostu nie można utworzyć pliku z tylko rozszerzeniem. Sztuczka polega na tym, aby utworzyć pusty plik tekstowy i przejść do wiersza polecenia i zmienić nazwę pliku na .gitignore:

ren "New Text Document.txt" .gitignore

Teraz otwórz plik za pomocą ulubionego edytora tekstu i dodaj nazwy plików / folderów, które chcesz zignorować. Możesz również użyć symboli wieloznacznych, takich jak: *.txt.

 44
Author: Mahes,
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
2019-11-14 13:51:38

Jeśli chcesz zachować folder, a nie pliki w nim, po prostu umieść".gitignore "plik w folderze z" * " jako zawartością. Ten plik sprawi, że Git zignoruje całą zawartość z repozytorium. Ale .gitignore zostaną włączone do twojego repozytorium.

$ git add path/to/folder/.gitignore

Jeśli dodasz pusty folder, otrzymasz ten Komunikat (.gitignore jest ukrytym plikiem)

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

Więc użyj "- f", aby wymusić dodanie:

$ git add path/to/folder/.gitignore -f
 27
Author: sensorario,
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
2019-11-14 14:15:13

Aby zignorować cały katalog w Git, najprostszym sposobem jest dołączenie a .plik gitignore w katalogu docelowym, który zawiera po prostu"*".

Przykład ilustracyjny,

Przykładowy System

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

Gol

  • ignoruj zawartość / dirB /

Top Level (/root/.gitignore)

  • to miejsce, gdzie trafiają twoje standardowe informacje gitignore (np. " ~ Untitled.docx", kilka prywatnych dirów itp.). "dirB/" z pewnością może być umieszczone tutaj, w razie potrzeby

Ignorowany Katalog (/root / dirB/.gitignore)

  • Git obserwuje gitignore na każdym kroku systemu plików, więc za każdym razem, gdy masz ignorowane specyfikacje do zastosowania, wrzuć je, generując nowy gitignore dla tego katalogu

  • DirB/.gitignore wtedy po prostu czyta jako " * " i cała zawartość jest ignorowana całkowicie, sama i wszystkie pliki!

I to takie proste:)

 24
Author: J-Dizzle,
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
2020-06-25 12:56:03

W Windows jest dodatkowy haczyk z ukośnikami. Wyłączając pojedynczy katalog w .gitignore z

Dir_to_exclude /

Prawdopodobnie zadziała, ale wyłączając wszystkie katalogi z

/

Powoduje problemy, gdy w katalogu znajdują się nazwy plików ze spacjami (np. my file.txt): Git Bash usuwa te spacje z odwrotnym ukośnikiem (np. my\ file.txt), A Git dla Windows nie rozróżnia pomiędzy / i \.

Aby wykluczyć wszystkie katalogi, lepsze wykorzystanie:

**/

Dwie kolejne gwiazdki oznaczają zawartość katalogu.

 21
Author: wortwart,
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
2019-11-14 14:26:37

Również w katalogu \.git\info projects znajduje się plik exclude, który jest dokładnie tym samym co .gitignore (tak myślę). Możesz dodawać pliki i katalogi do ignorowania w tym.

 16
Author: Si3,
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-04-08 17:24:37

Możesz utworzyć ".gitignore " plik o treści:

*
!.gitignore
U mnie działa.
 16
Author: calraiden,
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
2019-11-14 23:00:14

Na wszelki wypadek możesz użyć symbolu **, aby wykluczyć dowolny poziom katalogu podrzędnego.

**/build/output/Debug/
 15
Author: Eat at Joes,
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-02-17 00:40:58

Gdy Wszystko inne zawiedzie spróbuj edytować plik

/.git / info / exclude

I dodawanie katalogów, które chcesz na końcu pliku, w następujący 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 "assets" i "compiled" do listy plików i katalogów do zignorowania.

 12
Author: Xedret,
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-04-04 21:38:12

Na Unixie:

touch .gitignore

W Systemie Windows:

echo > .gitignore

Te polecenia wykonywane w terminalu utworzą plik .gitignore w bieżącej lokalizacji.

Następnie po prostu dodaj informacje do tego pliku .gitignore (na przykład używając Notepad++), które pliki lub foldery powinny być ignorowane. Zapisz zmiany. To jest to:)

Więcej informacji: .gitignore

 9
Author: fvolodimir,
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
2019-11-14 14:30:36

Miałem problemy z pobraniem pliku .gitignore w systemie Windows. Plik $GIT_DIR/info/exclude wydaje się jednak zawsze działać.

Minusem tego podejścia jest jednak to, że pliki w katalogu $GIT_DIR nie są uwzględniane w check-in, a zatem nie są udostępniane.

P. s. $GIT_DIR jest zwykle ukrytym folderem o nazwie .git

 8
Author: Jason,
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
2019-11-14 13:57:39

Zakładam, że problem polega na tym, że Twoje działające drzewo wygląda tak:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... z .gitignore, które opisujesz. To daje git status wyjście takie 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 pliki index.html nie zostały jeszcze dodane do repozytorium. (Git widzi, że w katalogach pamięci podręcznej znajdują się niezaznaczone pliki, ale zgłasza tylko te katalogi.) Aby to naprawić, upewnij się, że dodałeś i zatwierdziłeś pliki index.html:

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... a twój git status wtedy spojrzy like:

$ 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 też chcesz popełnić .gitignore. Byłem leniwy z tą sprawą testową.)

 6
Author: Mark Longair,
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
2019-11-14 14:13:53

W systemach Windows i Mac, jeśli chcesz zignorować folder o nazwie Flower_Data_Folder w bieżącym katalogu, możesz to zrobić:

echo Flower_Data_Folder >> .gitignore

Jeśli jest to plik o nazwie data.txt:

echo data.txt >> .gitignore

Jeśli jest to ścieżka typu " dane / hasła.txt "

echo "Data/passwords.txt" >> .gitignore. 
 6
Author: Olusola Omosola,
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
2019-11-14 14:31:34

Miałem podobne problemy. Pracuję na Windows tool chain ze współdzielonym repozytorium z Linuksem i chętnie tworzą pliki o tych samych (poza przypadkami) nazwach w danym folderze.

Efekt jest taki, że mogę sklonować repozytorium i od razu mieć dziesiątki 'zmodyfikowanych' plików, które, gdybym się zameldował, spowodowałyby spustoszenie.

Mam Windows ustawiony na rozróżnianie wielkości liter i Git, aby nie ignorował wielkości liter, ale i tak nie działa(w wywołaniach API Win32 najwyraźniej).

If I gitignore the pliki następnie muszę pamiętać, aby nie śledzić .plik gitignore.

Ale znalazłem dobrą odpowiedź tutaj:

Http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html

 2
Author: Chris Aaaaa,
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
2019-11-14 14:22:52

Po prostu utwórz plik .gitignore w folderze projektu, a następnie dodaj nazwę folderu w nim dla ex:

frontend/node_modules
 0
Author: DINA TAKLIT,
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
2020-02-11 23:58:42

To może być dla niektórych bardzo oczywiste, ale zrozumiałem to z innych odpowiedzi.

Tworzenie .plik gitignore w katalogu sam w sobie nic nie robi. Musisz otworzyć .gitignore jako plik tekstowy i zapisz pliki / katalogi, które chcesz zignorować, każdy w swojej własnej linii.

Więc cd do katalogu repozytorium Git

touch .gitignore
nano .gitignore

, a następnie zapisz nazwy plików i katalogów, które chcesz zignorować, oraz ich rozszerzenia, jeśli ma to zastosowanie.

Także, .gitignore jest ukrytym plikiem na niektórych systemach operacyjnych (na przykład Mac), więc potrzebujesz ls -a, aby go zobaczyć, a nie tylko ls.

 0
Author: ACB_prgm,
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
2020-12-19 17:57:53