Git 跟踪文件,而不是目录 https://stackoverflow.com/questions/5091017, 和我们目前不能add空目录 https://stackoverflow.com/questions/11600188/ (The 标准技巧 https://stackoverflow.com/questions/115983/不添加空目录,而是添加其中的文件,另请参阅FAQ https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F).
尽管如此,一个 gitrepo
可能包含一个空目录。那么,如果我克隆一个存储库或检出包含空目录的分支,会发生什么情况呢?它是在工作树中创建的吗?
要使用空目录设置测试存储库,您可以使用以下脚本(在临时目录中运行它)。
然而,签出时,空目录将被忽略。在这里,Git 也只适用于文件,而不适用于目录,即使后者存在。
GitHub 和tig http://jonas.nitro.dk/tig/显示空目录,gitk http://www.kernel.org/pub/software/scm/git/docs/gitk.html才不是。
#!/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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)