是否可以仅将单个分支签出为子模块,而不会占用主存储库工作目录中整个存储库的开销? (实际上只下载该分支的文件)
我想有一个带有名为“dist”的分支的javascript库的子模块,其中只包含缩小的已编译的即用型js文件。 “master”将包含源文件和一堆其他只需要开发lib的东西。
答案 0 :(得分:1)
请注意,子模块仅代表固定的SHA1。
话虽如此,在git子模块更新--remote上,您可以通过按照我的回答#34; git submodule tracking latest"
对于现有的子模块:
git config -f .gitmodules submodule.<path>.branch <branch>
repo可以将自己添加为具有给定分支的子模块
我曾经为gh-pages
of a GitHub pages repo这样做。
由于子模块是子仓库,您将下载仓库,并且只检查您需要的分支。
虽然有a --single-branch
option to git clone
确实将克隆限制为单个分支
您可以尝试使用-b
(git submodule add -b abranch
)选项再次添加子模块,以检查是否克隆了远程子模块仓库中只有一个分支。
请参阅&#34; Is a full clone the only way to submodule add a branch?&#34;。
答案 1 :(得分:0)
在同一个存储库的 MainProjectBranch 中添加子模块分支(Submodule1Branch):-
创建子模块的分支(视为存储库):-
从 Master 创建一个分支作为 Submodule1Branch 。
在本地计算机中克隆 Submodule1Branch ,并删除其中的所有Master,并仅通过给定命令使用 Submodule1Branch 的相应项目进行推送:-
git状态
git add。
git commit -m“删除了主项目的所有内容并加载了我的子模块项目数据”
git push
将此Submodule1Branch添加为同一仓库中MainProjectBranch的子模块:-
结果:-您可以转到一个位桶或git服务器,然后检查 MainProjectBranch ,在那里您会找到 Submodule1Branch 作为 MainProjectBranch的子模块。
注意:-您可以对单独的存储库执行与上述步骤相同的步骤 好。(例如:-子模块仓库和主项目仓库将有所不同 会有所不同)。编码愉快!! :)。