Ответ 1
Чтобы настроить тестовый репозиторий с пустым каталогом, вы можете использовать следующий script (запустите его во временной строке).
Однако при проверке пустая директория игнорируется. Здесь также Git работает только с файлами, а не с каталогами, даже если последние присутствуют.
Github и tig
отображают пустые каталоги, gitk
нет.
#!/bin/bash
set -e
echo ---- initialize the repo...
#rm -rf .git
git init
echo ---- create an empty tree object...
empty_tree=$(git mktree < /dev/null)
echo ---- create a parent tree containing the empty subtree...
root_tree_ls=$(echo -e 040000 tree $empty_tree\\tvacuum)
root_tree=$(echo "$root_tree_ls" | git mktree)
echo ---- commit...
commit_msg="This commit contains an empty directory"
commit=$(git commit-tree $root_tree -m "$commit_msg")
echo ---- create a branch...
git branch master $commit
# output the ids:
echo ----------------------------------------------------
echo "empty tree:" $empty_tree
echo "root tree: " $root_tree
echo "commit: " $commit