git 拉取子目录 child-dir (父目录为:parent-dir)

​git init my-project

rem 进入目录
cd my-project

git remote add origin http://30.100.28.41:80/my-project.git

git config core.sparsecheckout true

rem(下面这句是灵魂,是核心,是光,是电,是唯一的神话)
编辑 .git/info/sparse-checkout(没有的话自己新建一个),然后编辑该文件,把你希望想要的文件夹添加在此文件。
或者用命令行:
echo /parent-dir/src/main/child-dir/ >> .git/info/sparse-checkout
echo /parent-dir/child-dir2/ >> .git/info/sparse-checkout

git fetch --depth 1 origin master

rem 上面语句会根据git整体仓库的大小来花费时间,越大,花费时间越长。
rem 如果git仓库日积月累变得很大,这个SCM的管理就是一个不良管理,
rem 它使得即使想检出一个子目录,也变得尤其的慢。

git checkout master
​
rem 以下非必须,只是查看结果
dir parent-dir\src\main\child-dir
dir parent-dir\child-dir2

ls  parent-dir/src/main/child-dir

可以看出,git 检出子目录,是相当繁琐的,尤其是代码库体积很大的情况下。

而且,另外一个问题来了,我如果要维护一个多子目录的仓库,那么要有一个全目录的git拷贝检出。

当我只在一个目录下活动时,我又要单独检出这个目录。有2个,要做到互不干扰,则要再检出。假设1个父目录下N-1个目录)。则我机器上要有N个目录检出,才能维护正常。这很显然很麻烦、不自然,比svn麻烦多了。

git的整体仓库概念、分支比较特性,决定了它更适合做严肃的整体软件项目代码的开发,不适合做松散的、一般性的项目的子目录检出、权限管理,这个场景或许svn更合适。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值