我的Git仓库上有几个文件夹:
folder1/suba
folder2/subb
folder3/subc
在本地我在我的网络服务器上有公共文件夹。
http://domain.com/
指向该文件夹
~/apps/appname/public
我想有效地对服务器上的folder3/subc
文件夹执行public
的git克隆。现在我知道稀疏结账,但保留了文件夹层次结构(如~/apps/appname/public/folder3/subc
)。
我不想要那个层次结构,并希望将folder3 / subc的内容直接签出到公共文件夹中。
这可能吗?
答案 0 :(得分:1)
如果~/apps/appname/public
位于共享文件系统上,并且您的网络服务器未更改签出文件,则可以维护其内容的专用索引,并使用git read-tree -um
更新文件系统你喜欢的任何提交:
(
export GIT_INDEX_FILE=/path/to/repo/.git/appname-public-manifest
export GIT_WORK_TREE=~/apps/appname/public
git read-tree -um `git write-tree` master:folder3/subc
)
git write-tree
为git read-tree
写一个树进行检查,并且读取树将现在的内容和指定树中的内容之间的差异应用于索引和工作树。
如果该目录中没有任何内容,则无需初始化,否则
(
export GIT_INDEX_FILE=/path/to/repo/.git/appname-public-manifest
export GIT_WORK_TREE=~/apps/appname/public
git read-tree --empty # start from nothing
git add . # index what's there now
)
将设置清单以匹配已存在的清单。
答案 1 :(得分:0)
您无法克隆子目录。但是,您可以创建浅克隆。这种浅克隆仅适用于部署。
意味着您无法使用这些克隆进行提交,拉动,推送和变基。浅克隆可帮助您减少克隆大小足迹