相关疑难解决方法(0)

具有单个子模块的多个回购

我找了一会儿却找不到答案(也许我不知道该看什么).

我们有一个主库,它是一个自己的存储库(让我们称它为Lib)它包含我们的大多数模块和子模块.我们还说它的大小为2GB ......

现在我们有很多项目,例如:ProjA,ProjB,ProjC,每个项目都使用Lib作为子模块.

ProjA

  • Lib(分支:master,commit#:1)

ProjB

  • Lib(分支:其他,提交#:2)

ProjA

  • Lib(分支:master,commit#:4)

因此,虽然我能够保持每个项目引用正确的库(aka子模块)版本.我现在有3*2GB = 6GB的THE SAME子模块.

有没有办法在保持引用的正确文件/版本控制的同时引用单个子模块?

例如.

ProjA

  • Lib/base_lib.h(v1.0)

  • LIB/file_only_in_this_commit

ProjB

  • Lib/base_lib.h(v1.0)

ProjC

  • Lib/base_lib.h(v1.1)

谢谢!

git git-submodules

8
推荐指数
2
解决办法
1208
查看次数

'git submodule add'没有克隆它

如何在不实际克隆其包含的所有文件的情况下向项目中添加本地子模块?我想避免在本地复制我的项目文件.

我知道可以实现这种事情,因为当您克隆包含子模块的项目时,默认情况下不会克隆这些项目.你必须手动完成:

git clone url-of-repo-containing-submodules.git
git submodule init sub-mod
git submodule update --remote
Run Code Online (Sandbox Code Playgroud)

比方说,我有一个带有外源repo lib-sobmodule的git repo 元项目.

我可以破解它以避免文件重复:

cd /path/to/metaproject
git submodule add ../path/to/lib-sobmodule
git commit -m "lib-sobmodule added..."
git push
cd .. && rm -rf meta-project
git clone url-of-meta-project.git
Run Code Online (Sandbox Code Playgroud)

Tadam!lib-sobmodule的文件在我的桌面上不重复.但它不是一个很好的解决方案,因为它导出然后导入/从git遥控器...

是否有一个选项或方法可以阻止克隆本地项目而不必复制它包含的所有文件?

免责声明:这几乎是一个克隆问题,是否有办法在git submodule add没有克隆它的情况下回购?.但由于答案集中在30K git子模块的要求,他们没有给出我在这里描述的更常见用例的满意解决方案.

git git-clone git-submodules

7
推荐指数
1
解决办法
976
查看次数

标签 统计

git ×2

git-submodules ×2

git-clone ×1