Git Submodules && Sparse checkout


步骤备忘:

1,增加子模块 ,这里会把所有的内容 clone 下来, 在 5步的时候,会清除掉不需要的文件。

  git submodule add   git@aaaaa.com/asdfasdfasdfasdfasdfasdfasdf.git   subpath

2, 开启子模块 sparse  

git –C  subpath config core.sparseCheckout true

3,   git submodule absorbgitdirs

4,  部分签出的设置,注意在 echo 的时候 linux 可能需要加 单引号 , windows 不需要

echo  java-client/aaaaa/*  >> .git/modules/subpath/info/sparse-checkout

echo  java-client/aaaaa/bbbbb/cccc.txt  >> .git/modules/subpath/info/sparse-checkout

注: java-client/….  这部分是子模块git中的路径,可以使用通配,也可以使用文件路径

5, 强制更新一下,清理多余的文件

git submodule update --force –checkout  subpath

问题:

使用 git clone –recursive git.aaaaaa/aaaaaa.git

进行整体获取,上面的设置会失效。

如何解决?

https://docs.gitlab.com/ee/topics/git/partial_clone.html ,这个先做为参考,后面再看如何解决。

参考:

https://stackoverflow.com/questions/52780680/git-submodule-prepare-for-sparse-checkout

1,

https://git-scm.com/book/en/v2/Git-Tools-Submodules

posted @ 2022-12-27 13:02  张保维  阅读(221)  评论(0编辑  收藏  举报