我已将GIT存储库克隆到~/myrepo.git
中。
存储库包含数百个目录。
我想创建几个仅包含可用目录的一小部分的“项目”,例如:
~/project1/dirA
/dirB
/dirC
~/project2/dirD
/dirE
/dirF
我需要执行什么Git命令才能使其正常工作?
我知道我需要做一些配置:
git config core.sparseCheckout true
然后我需要修改sparse-checkout
文件:
echo "/dirA" >> .git/info/sparse-checkout
echo "/dirB" >> .git/info/sparse-checkout
echo "/dirC" >> .git/info/sparse-checkout
接下来会发生什么?
git checkout master
?
git pull
?
是否缺少任何步骤?
我正在使用cygwin
命令行Git,并且想做一个bash脚本来自动创建这种项目。
答案 0 :(得分:2)
我认为您误认为了稀疏签出的工作方式:您一定不要先克隆远程,因为它将从远程下载所有内容。相反,您必须:
git init
创建本地存储库,.git/info/sparse-checkout
文件以选择子目录git remote add origin ...
请注意,如果要创建仅包含目录子集的新git repo,则要查找的命令为git filter-branch --subdirectory-filter
。