2012-07-22 8 views

Respuesta

13

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 
+1

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