Jakie są różnice między nimi.gitignore i.gitkeep?

Jakie są różnice między .gitignore i .gitkeep? Czy to ta sama rzecz o innej nazwie, czy obie pełnią inną funkcję? Wydaje mi się, że nie jestem w stanie znaleźć zbyt wielu dokumentów na .gitkeep.

 1467
Author: 7ochem, 2011-08-29

3 answers

.gitkeep nie jest udokumentowane, ponieważ nie jest to cecha Gita.

Git nie może dodać całkowicie pustego katalogu . Ludzie, którzy chcą śledzić puste katalogi w Git, stworzyli konwencję umieszczania plików o nazwie .gitkeep w tych katalogach. Plik można nazwać dowolnym; Git nie przypisuje tej nazwie żadnego szczególnego znaczenia.

Istnieje konkurencyjna konwencja dodawania pliku .gitignore do pustych katalogów, aby je śledzić, ale niektórzy ludzie uważają to za mylące ponieważ celem jest zachowanie pustych katalogów, a nie ich ignorowanie; .gitignore jest również używany do wyświetlania listy plików, które powinny być ignorowane przez Git podczas szukania plików nie śledzonych.

 2679
Author: Wooble,
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-11-14 14:44:08

.gitkeep to tylko Element Zastępczy. Atrapa pliku, więc git nie zapomni o katalogu, ponieważ Git śledzi tylko pliki.


Jeśli chcesz mieć pusty katalog i upewnij się, że pozostaje "czysty" dla Gita, Utwórz .gitignore zawierający następujące wiersze w obrębie:

# .gitignore sample 
###################

# ignore all files in this dir...
*

# ... except for this one.
!.gitignore

Jeśli chcesz, aby tylko jeden rodzaj plików był widoczny dla git, oto przykład jak odfiltrować wszystko, z wyjątkiem .gitignore i wszystkie .txt pliki:

# .gitignore to keep just .txt files
###################################

# filter everything...
*

# ... except the .gitignore...
!.gitignore

# ... and all text files.
!*.txt

('#'oznacza komentarze.)

 235
Author: sjas,
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-30 20:34:48
.gitignore

Jest plikiem tekstowym zawierającym listę plików w katalogu, które git zignoruje lub nie doda/zaktualizuje w repozytorium.

.gitkeep

Ponieważ git usuwa lub nie dodaje pustych katalogów do repo .gitkeep to rodzaj hack 'a (nie wydaje mi się, że jest oficjalnie nazwany jako część Gita) do utrzymywania pustych katalogów w repo.

Po prostu wykonaj touch /path/to/emptydirectory/.gitkeep aby dodać plik, a git będzie mógł utrzymać ten katalog w repozytorium.

 101
Author: Jim Munro,
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-12 19:36:01