git只添加某个分支的子模块

git只添加某个分支的子模块,git,branch,git-submodules,Git,Branch,Git Submodules,在我的主存储库工作目录中,是否可以只签出一个分支作为子模块,而不占用整个存储库的开销?(实际上只下载该分支机构的文件) 我考虑为javascript库提供一个子模块,该子模块具有一个名为“dist”的分支,其中只包含简化的已编译即用js文件。“master”将包含源文件和一堆仅用于开发lib的其他内容。请注意,子模块仅表示固定的SHA1 也就是说,在git submodule update--remote上,您可以按照我的答案让子模块在给定分支的最新分支之前更改其SHA1“” 对于现有子模块:

在我的主存储库工作目录中,是否可以只签出一个分支作为子模块,而不占用整个存储库的开销?(实际上只下载该分支机构的文件)


我考虑为javascript库提供一个子模块,该子模块具有一个名为“dist”的分支,其中只包含简化的已编译即用js文件。“master”将包含源文件和一堆仅用于开发lib的其他内容。

请注意,子模块仅表示固定的SHA1

也就是说,在git submodule update--remote上,您可以按照我的答案让子模块在给定分支的最新分支之前更改其SHA1“”

对于现有子模块:

git config -f .gitmodules submodule.<path>.branch <branch>
git config-f.gitmodules子模块..分支
回购协议可以将自身添加为子模块,具有给定的分支。
我过去经常这样做

由于子模块是子回购协议,您将下载回购协议,并仅签出您需要的分支机构。
尽管如此,仍存在将克隆限制为单个分支的限制。
您可以尝试使用
-b
git submodule add-b abranch
)选项再次添加子模块,以检查是否克隆了远程子模块repo,其中只有一个分支。

请参阅“

在相同的存储库中添加子模块分支(子模块1分支)内部MainProjectBranch:-

创建子模块的分支(视为存储库):-

  • 从主节点创建一个分支作为子模块1分支

  • 在本地计算机中克隆子模块1branch,删除其中Master的所有内容,并仅通过给定命令推送相应的子模块1branch项目:-

    • git克隆-b子模块1分支
    • git状态

    • git添加

    • git commit-m“删除了主项目的所有内容并加载了我的子模块项目数据”

    • git推送

将此子模块1分支添加为同一回购中MainProjectBranch的子模块:-

  • 从“Master”创建一个分支,并将其命名为“MainProjectBranch”
  • 在本地克隆此分支
  • 现在,通过给定命令在此分支上执行子模块:-
  • git子模块添加-b子模块1分支 子模块/
  • git状态
  • cat.git模块
  • git添加
  • git commit-m“添加了子模块1branch,作为MainProjectBranch的子模块”
  • git推送
结果:-您可以转到一个bitbucket或git服务器并检查MainProjectBranch,在那里您将发现子模块1Branch作为MainProjectBranch的子模块

注意:-您可以对单独的存储库执行与以下相同的步骤 嗯。(例如:-子模块回购将不同于主项目回购 将不同)。快乐编码!!:)


我已经编辑了我的答案,但关键是:你将签出你想要的分支,但是,你仍然需要获取所有回购。尽管有一个分支选项:查看我的编辑。