Ответы:
.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 теперь сможет поддерживать этот каталог в репозитории.
.gitignore
s, сколько хотите, если не хотите каждый раз указывать полный путь к каждой папке.
.gitkeep
файле, но он не будет отслеживать пустые каталоги, только папку отслеживать, где .gitkeep
файл существует. почему так ?
.gitignore
s избавили вас от необходимости указывать полный путь к каждой папке каждый раз? Я думаю, что упускаю что-то очевидное.
README
файл в другой пустой подкаталог, содержащий немного информации о том, для чего будет использоваться этот подкаталог? Кажется странным иметь файл с именем,.gitkeep
который на самом деле не является частью git.