В чем разница между .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, это просто местозаполнитель.