2012-07-22 11 views

Odpowiedz

13

Aby skonfigurować testowe repozytorium z pustym katalogiem, możesz użyć następującego skryptu (uruchom go w tymczasowym directoy).

Podczas wyliczania pusty katalog jest jednak ignorowany. Również tutaj Git działa tylko z plikami, a nie z katalogami, nawet jeśli są one obecne.

Github i tig wyświetla puste katalogi, gitk nie.

#!/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

To rzeczywiście dodaje puste drzewo do repozytorium. Ale klonowanie repozytorium nie tworzy pustego katalogu w drzewie roboczym. – manu