Тестирование пустых каталогов
На этом этапе мы исследуем, как Git обрабатывает пустые каталоги. Это часто вызывает путаницу у новичков, так как Git ведет себя по-разному с каталогами и файлами.
Сначала убедитесь, что вы находитесь в каталоге ~/project/my-time-machine
:
cd ~/project/my-time-machine
Теперь создадим новый пустой каталог внутри нашего проекта:
mkdir empty-folder
Мы создали каталог. Теперь проверим статус нашего репозитория с помощью команды git status
:
git status
Вы должны увидеть вывод, похожий на следующий:
On branch master
nothing to commit, working tree clean
Обратите внимание, что Git не сообщает о empty-folder
как о неотслеживаемом каталоге. Это потому, что Git отслеживает содержимое файлов, а не сами каталоги. Пустой каталог не имеет содержимого для отслеживания.
Это важное понятие в Git. Если вам нужно включить пустой каталог в ваш репозиторий, распространенное решение - поместить в него фиктивный файл. Обычно создают файл с именем .gitkeep
(хотя имя не имеет значения, это просто соглашение).
Создадим файл .gitkeep
внутри каталога empty-folder
:
touch empty-folder/.gitkeep
Теперь проверим статус с помощью git status
еще раз:
git status
На этот раз вы должны увидеть:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
untracked files present (use "git add" to track)
Untracked files:
(use "git add <file>..." to include in what will be committed)
empty-folder/
Теперь Git видит empty-folder/
, так как он содержит файл (.gitkeep
), который можно отслеживать.
Это показывает, что Git отслеживает наличие файлов в каталогах, а не сами каталоги. Чтобы включить каталог в историю вашего репозитория, он должен содержать хотя бы один отслеживаемый файл.