Ответы:
.gitkeep не задокументировано, потому что это не особенность Git.
Git не может добавить полностью пустой каталог . Люди, которые хотят отслеживать пустые каталоги в Git, создали соглашение о размещении файлов, называемых .gitkeepв этих каталогах. Файл может называться как угодно; Git не придает особого значения этому имени.
Существует конкурирующее соглашение о добавлении .gitignoreфайла в пустые каталоги для отслеживания их, но некоторые люди считают, что это сбивает с толку, поскольку цель состоит в том, чтобы сохранить пустые каталоги, а не игнорировать их; .gitignoreтакже используется для отображения файлов, которые Git должен игнорировать при поиске неотслеживаемых файлов.
.gitignoreфайл с двумя линиями: *и !.gitignoreболее чем достаточно ясности , чтобы передать то , что происходит. Если требуется дополнительная проработка, добавьте комментарий в начало файла, используя # синтаксис.
.keepфайлы вместо того, .gitkeepчтобы сохранять эти пустые папки, поскольку git не единственная система контроля версий, которая не отслеживает пустые папки. Больше подробностей здесь: github.com/rails/rails/issues/2800
.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
(«#» обозначает комментарии.)
!перед .gitignore? Это для того, чтобы избежать точки?
!отрицает следующую часть, как это обычно бывает в программировании.
!.gitignoreфайл git ignore, либо добавьте файл, затем отредактируйте его, либо принудительно добавьте его с соответствующим содержимым («*», чтобы игнорировать все, или ничего, чтобы просто убедиться, что папка существует), следующий пример .
Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.------ Если это не так, и вы не делаете принудительное добавление, вы можете забыть об этом. В тривиальных случаях нет проблем, но если это файл большего размера, вы можете быть расстроены. Использование !.gitignoreмешает вам выстрелить себе в ногу. Я предпочитаю это, сжег себя в прошлом.
.gitignore
текстовый файл, содержащий список файлов в вашем каталоге, которые git будет игнорировать или не добавлять / обновлять в хранилище.
.gitkeep
Поскольку Git удаляет или не добавляет пустые каталоги в репозиторий, .gitkeep является своего рода хаком (я не думаю, что он официально назван как часть Git), чтобы хранить пустые каталоги в репозитории.
Просто touch /path/to/emptydirectory/.gitkeepдобавьте файл, и Git теперь сможет поддерживать этот каталог в репозитории.
.gitignores, сколько хотите, если не хотите каждый раз указывать полный путь к каждой папке.
.gitkeepфайле, но он не будет отслеживать пустые каталоги, только папку отслеживать, где .gitkeepфайл существует. почему так ?
.gitignores избавили вас от необходимости указывать полный путь к каждой папке каждый раз? Я думаю, что упускаю что-то очевидное.
READMEфайл в другой пустой подкаталог, содержащий немного информации о том, для чего будет использоваться этот подкаталог? Кажется странным иметь файл с именем,.gitkeepкоторый на самом деле не является частью git.