繁体   English   中英

嵌套git repos

[英]Nesting git repos

我想问社区什么是最好的方法来为我的例子接近嵌套git repos。 我们中有两个人将在共享代码资产的同一项目上工作。 这个项目里面会有很多小项目,它们共享相同的资产(依赖于它们)。 文件夹结构将如下所示:

main_project
 - assets
 - project_1
 - project_2
 - project_3 

有没有办法我们可以在其中包含main_project和资产的版本历史记录并忽略其中的项目文件夹,并为每个项目分别设置版本控制历史记录?

如果这不可行,那么这种情况的最佳方法是什么。

tnx卢卡

您可以将子项目添加为子模块 ,我认为这是模式。 我上次检查时有点笨重(但我工作过),但那是几年前所以也许尝试一下。

基本上会发生这样的事情:资产和不在子模块文件夹中的所有东西都将由主项目git管理。 除此之外,该存储库还将创建一个包含子模块列表的文件。 所有子模块都将在各自自己的存储库中进行管理(可以移动,克隆,推送和拉取东西,因为它是正常的git)。

编辑:

不知道@gorilly中的子树在评论中提到的可能是更简单的解决方案

在我的工作中,我们正在做类似的事情。 我不建议使用此实现。 在你习惯之前,这有点令人困惑。

main_project
.gitignore
- assets
- project_1
-- .gitignore
- project_2
-- .gitignore

main_project / .gitignore(允许主项目树中的占位符目录,但git将忽略内容):

project_1/*
!project_1/.gitignore
project_2/*
!project_2/.gitignore

project _ * /。gitignore可以为空,但如果要在main_project的树中使用占位符,它们必须存在。

然后,您可以在project_1和project_2中运行git init以创建单独的嵌套存储库。

另一种方法可能是使用符号链接,因此:

main_project
- assets
project_1
- assets -> ../main_project/assets/
project_2
- assets -> ../main_project/assets/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM