第二步,启用 sparse-checkout,并初始化 拉取到仓库后,执行 git config core.sparseCheckout true 命令启用 sparse-checkout。 然后再执行 git sparse-checkout init 初始化。 第三步,使用 sparse-checkout 来拉取我们想要的仓库目录 比如说,我们只想拉取 docs 目录,可以执行 git sparse-checkout set docs 命令。 如何禁用 git sparse-checkout 呢? 也简单,只需要执行一下 git sparse-checkout disable 命令就可以了。 也简单,只需要执行一下 git sparse-checkout reapply 命令就可以了。
Git 2.25 中,通过引入新的 git sparse-checkout 命令,让这一操作更加简便。 命令使用户可以尽可能轻松地进行部分克隆和稀疏检出,无需将复杂的.gitignore模式匹配编写到.git/info/sparse-checkout,git sparse-checkout会直接处理。 git sparse-checkout 可以做四件事:设置(set)要检出的路径列表、打印(list)当前列表以及完全启用(enable)或禁用(disable)稀疏检出。 要检出新路径,只需执行以下命令: $ git sparse-checkout set /path/to/check/out 此外,对于非常大的仓库,稀疏检出模式匹配列表会过于繁杂,Git 现在提供了一种 在 cone 模式下, git sparse-checkout set A/B/C 可以做到这一点。
$ echo "path2/" >> .git/info/sparse-checkout $ git pull origin [branch] // 你的分支名称 git init <project *.so 3、 重新checkout $ git checkout [branch] // 你的分支名称 or $ git read-tree -mu HEAD sparse-checkout 文件设置 子目录的匹配 在 sparse-checkout 文件中,如果目录名称前带斜杠,如/docs/,将只匹配项目根目录下的docs目录,如果目录名称前不带斜杠,如docs/,其他目录下如果也有这个名称的目录 而如果写了多级目录,如docs/05/,则不管前面是否带有斜杠,都只匹配项目根目录下的目录,如test/docs/05/不能被匹配fd 通配符 ““ (星号)匹配 在 sparse-checkout (感叹号)匹配 在 sparse-checkout 文件中,也支持排除项 “!”,如只想排除排除项目下的 “docs” 目录,可以按如下格式写: /* !
开启稀疏检出 git config core.sparsecheckout true 6. sparse-checkout文件里写入要拉取的文件或者文件夹 echo "clone_file" >> . git/info/sparse-checkout 7. xxx.git git config core.sparsecheckout true echo "clone_file" >> .git/info/sparse-checkout
origin <origin_url> 启用sparse checkout模式,允许克隆子目录 1 git config core.sparsecheckout true 在 .git/info/sparse-checkout 文件中指定要拉取的文件夹或文件: 1 2 ## 例如要拉取远程仓库public目录下的所有文件 echo "public/*" >> .git/info/sparse-checkout 如果要拉取多个文件夹或文件 ,只需要在 .git/info/sparse-checkout 文件中添加多个路径即可 开始拉取 1 git pull origin master git 设置全局用户名、密码、邮箱 设置 1
git从1.7.0开始支持sparse clone,sparse clone也只是1个变通的方法:先拿到全部repository的object等元数据信息,然后在本地加1个叫.git/info/sparse-checkout git config core.sparsecheckout t ue 5.设置需要pull的目录 *表示所有 echo "develop" >>.git/info/sparse-checkout echo "web/assets/*" >>.git/info/sparse-checkout 6.拉取远程仓库 git pull origin maste
可以使用 sparse-checkout, 只下载你指定的目录。 首先用网页操作,创建你想要的目录(已有的可以直接用), 如在公选课目录下创建「人工智障」, 然后在 cli 执行。 /USTC-CS-Courses-Resource.git git config core.sparsecheckout true echo "计算机与信息类/软件工程" >> .git/info/sparse-checkout #这里工作目录就是在那个 repo 主页下 #如果还有其他目录,都像上面一样加入即可,如 `echo "计算机与信息类/图论/slides" >> .git/info/sparse-checkout
repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true3,sparse-checkout
在.git/info/sparse-checkout文件中(如果没有则创建)添加需拉取的文件或文件夹 echo src>>.git/info/sparse-checkout 2.git 拉取指定lfs文件
+gitconfig--getcore.bare+gitconfig--getcore.objectformat5️⃣gitsparse-checkoutclean:修复稀疏检出残留文件一句话当你切换sparse-checkout 代码解释#先更新sparse规则gitsparse-checkoutsetsrc/core/#清理残留(仅删除超出规则的已跟踪文件)gitsparse-checkoutclean✅效果:仅删除不符合当前sparse-checkout
& cd test //新建仓库并进入文件夹 git config core.sparsecheckout true //设置允许克隆子目录 echo 'tt*' >> .git/info/sparse-checkout
没有中括号,以下相同)] && cd [跟你刚才的名字一样] git config core.sparsecheckout true echo '/examples/*' >> .git/info/sparse-checkout
大文件夹树的解决方案:git sparse-checkout Git的稀疏签出选项(自Git 1.7.0起可用)对二进制资产问题有轻微帮助。 echo src/ ' .git/info/sparse-checkout 按照规定读取树。 完成上述工作后,你可以回去使用正常的 git 命令,但你的工作目录将只包含你上面指定的文件夹。
core.sparsecheckout true echo code/BasicFeature/DataManagement/UDMF/UniformTypeDescriptor/UTDType/ > .git/info/sparse-checkout
Git性能问题: 大型仓库可能会面临性能问题,可以通过使用Git的部分克隆(sparse-checkout)、浅克隆(shallow clone)、Git LFS(Large File Storage)
info/sparse-checkout This file stores sparse checkout patterns.
config core.sparsecheckout true # git config -l # do NOT checkout third-party echo "/*" >> .git/info/sparse-checkout third-party" >> .git/info/sparse-checkout git remote add origin git@github.com:goodpaperman/apue.git third-party 中的内容屏蔽,之后稍作设置便可以继续检出: git config core.sparsecheckout false # clear third-party item vi .git/info/sparse-checkout
git config core.sparsecheckout true echo code/BasicFeature/FileManager/FileManager/ > .git/info/sparse-checkout
//设置允许克隆子目录 git config core.sparsecheckout true //设置要克隆的仓库的子目录路径 //空格别漏 echo '子路径名*' >> .git/info/sparse-checkout
开启稀疏检出必须满足2个条件: core.sparsecheckout 设置为 true .git/info/sparse-checkout 文件列出要检出的目录列表 本仓库有个 media 文件夹,用它来演示吧 github.com/xjh22222228/git-manual.git # 4、开启稀疏检出功能 git config core.sparsecheckout true # 5、编辑 .git/info/sparse-checkout 文件, 默认是没有需要手动新建 # 也可以通过命令将需要检出的目录路径写入追加进去 echo "media" >> .git/info/sparse-checkout # 6、拉取内容,