В чем разница между .gitignore и .gitkeep?
Каковы различия между .gitignore
и .gitkeep
? Это одно и то же с другим именем или они выполняют разные функции?
Кажется, я не могу найти много документации по .gitkeep
.
Ответы
Ответ 1
.gitkeep
не задокументирован, потому что это не функция Git.
Git не может добавить полностью пустой каталог. Люди, которые хотят отслеживать пустые каталоги в Git, создали соглашение о размещении файлов с именем .gitkeep
в этих каталогах. Файл можно назвать чем угодно; Git не имеет особого значения для этого имени.
Существует конкурирующее соглашение о добавлении файла .gitignore
в пустые каталоги для их отслеживания, но некоторые люди считают это запутанным, поскольку цель состоит в том, чтобы сохранить пустые каталоги, а не игнорировать их; .gitignore
также используется для отображения файлов, которые следует игнорировать с помощью Git при поиске ненужных файлов.
Ответ 2
.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
("#" обозначает комментарии.)
Ответ 3
.gitignore
- это текстовый файл, содержащий список файлов в вашем каталоге, которые git будет игнорировать или не добавлять/обновлять в хранилище.
.gitkeep
Поскольку Git удаляет или не добавляет пустые каталоги в репозиторий,.gitkeep является своего рода хаком (я не думаю, что он официально назван частью Git), чтобы хранить пустые каталоги в репозитории.
Просто сделайте touch /path/to/emptydirectory/.gitkeep
, чтобы добавить файл, и теперь Git сможет поддерживать этот каталог в хранилище.
Ответ 4
.gitkeep не должен быть привязан к git, это просто местозаполнитель.