Каковы различия между .gitignore и .gitkeep? - PullRequest
1689 голосов
/ 29 августа 2011

Каковы различия между .gitignore и .gitkeep? Это одно и то же с другим именем или они оба выполняют разные функции? Кажется, я не могу найти много документации по .gitkeep.

Ответы [ 3 ]

3036 голосов
/ 29 августа 2011

.gitkeep не задокументировано, потому что это не особенность Git.

Git не может добавить полностью пустой каталог . Люди, которые хотят отслеживать пустые каталоги в Git, создали соглашение о размещении файлов с именем .gitkeep в этих каталогах. Файл может называться как угодно; Git не придает особого значения этому имени.

Существует конкурирующее соглашение о добавлении файла .gitignore в пустые каталоги, чтобы отслеживать их, но некоторые люди считают, что это сбивает с толку, поскольку цель состоит в том, чтобы сохранить пустые каталоги, а не игнорировать их; .gitignore также используется для отображения файлов, которые Git должен игнорировать при поиске неотслеживаемых файлов.

282 голосов
/ 20 июля 2012

.gitkeep это просто заполнитель.Файл-пустышка, поэтому git не забудет о каталоге, так как git отслеживает только файлы.


Если вам нужен пустой каталог и убедитесь, что он остается чистым для git, создайте .gitignoreсодержит следующие строки:

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

# ignore all files in this dir...
*

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

Если вы хотите, чтобы git был видимым только один тип файлов, вот пример того, как отфильтровать все, кроме .gitignore и всех .txt файлов:

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

# filter everything...
*

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

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

(«#» обозначает комментарии.)

117 голосов
/ 29 августа 2011
.gitignore

- это текстовый файл, содержащий список файлов в вашем каталоге, которые git будет игнорировать или не добавлять / обновлять в хранилище.

.gitkeep

Поскольку git удаляет или не добавляет пустые каталоги в репозиторий, gitkeep является своего рода хаком (я не думаю, что он официально назван как часть git) для хранения пустых каталогов в репозитории.

просто добавьте файл touch /path/to/emptydirectory/.gitkeep, и git теперь сможет поддерживать этот каталог в хранилище.

...