Para configurar un repositorio de prueba con un directorio vacío, puede usar el siguiente script (ejecutarlo en un directorio temporal).
Al realizar la salida, sin embargo, se ignora el directorio vacío. Aquí también, Git solo funciona con archivos, no directorios, incluso si estos últimos están presentes.
Github y tig
muestran los directorios vacíos, gitk
no.
#!/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
Esto de hecho agrega el árbol vacío al repositorio. Pero clonar el repositorio no crea el directorio vacío en su árbol de trabajo. – manu