Вопрос: Каковы различия между .gitignore и .gitkeep?


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


1399


источник


Ответы:


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

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

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


2549



.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

('#' указывает комментарии.)


218



.gitignore

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

.gitkeep

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

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


96