我有一个项目,我希望将其中的一部分作为开源发布。我已经设置好了嵌套的git仓库,包括主仓库、一号仓库、二号仓库和三号仓库:
main/
├── one
├── three
└── two
我认为通过进入“main”并执行以下操作:
git add one
git add two
git add three
需要注意的是,没有尾随斜线,在子仓库中设置submodule即可。
但是,正如在如何跟踪未跟踪的内容中所指出的那样,这只会创建git链接而不是真正的submodules。
不幸的是,这个答案并没有帮助,因为它假定有一个“主”存储库位于其他地方,对于“main / one”,“main / two”和“main / three”我希望这些子存储库成为主存储库。 我正在考虑使用伪子模块(如Git fake submodules中所述),但对于克隆来说这不是一个特别理想的情况。
还有其他建议吗?
.gitmodules
е’Њ.git/config
жқӨ“дү®е¤ҚвЂқжҚџеқЏзљ„й“ңжҺӨпәџ - David Alan Hjellegit submodule add
来说意味着将其解析为包含仓库的 origin 远程的相对路径。这就是我在例子中使用pwd
获取绝对路径的原因。2)是的,你的协作者在初始化子模块后始终可以编辑.git/config
。如果你为子仓库建立了一个广泛可用的 URL(或者决定将裸库放在广泛可访问的位置),那么应该更新.gitmodules
,这样未来克隆你的主仓库的协作者就不必手动调整 URL。 - Chris Johnsen-c
选项来覆盖protocol.file.allow
配置属性,例如:git -c protocol.file.allow=always submodule add --name subrepo /tmp/repo2 path-under-parent-repo
。 - zpangwin