创建包含子模块的精确Git存储库并将其推送到具有精确文件夹结构的GitHub [英] Create and push EXACT git repository containing submodules to github with EXACT folder structure

查看:10
本文介绍了创建包含子模块的精确Git存储库并将其推送到具有精确文件夹结构的GitHub的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我认为我的用例是Git子模块最简单的用例。

我有一个目录结构

<project-name>
 ---<directory1>
 ---<directory2>
 ---<directory3>
        ---<directory3.1>
每个子目录都是一个Git存储库。我只想跟踪添加到我的<project-name>目录中的不同Git存储库,这是我的主(或超级)存储库。

我已经知道如何将这些Git存储库中的每一个作为子模块添加到我的超级存储库中,超级存储库也是一个包含它们的目录。在当地,我正好有我想要的东西。

所以一些Git子模块在我的超级存储库中有两个深度,只要我使用

git submodule add <relative-path-to-submodule> <relative-path-to-submodule>

它会很好地处理它。

我到底为什么要做这件事?因为这表示CFD框架(OpenFOAM)中的传统本地目录结构,所以我正在为.

开发我的代码

我和其他人分别开发不同的子模块,分别跟踪每个子模块/子目录是绝对有价值的。

目标是让我的最终用户克隆我的代码库,更改名称,并开始编译和使用代码。(按照惯例,建造超级容易)

我只是想不出如何将所有代码推送到GitHub,包括来自
子模块作为该特定子目录中的文件。

显然,当我推送到GitHub时,子模块只显示为提交,没有实际的代码 子目录被推送。

我不想(负担不起)在超级存储库中添加子目录。所有的答案都告诉我这样做,这是没有意义的。

我找到了确切的问题,但尚未回答(Git: Push a local git submodule, including submodule files, to a remote bare repository)

推荐答案

我只是想不出如何将所有代码推送到GitHub,包括子模块中的实际文件作为该特定子目录中的文件。

首先,不要使用子模块,它们不适合您要做的事情。

第二,试试子树方法:我解释了between submodule and subtreeillustrated subtree here的区别。

请参阅:

git subtree允许您将一个存储库作为子目录嵌套在另一个存储库中。这是Git项目管理项目依赖项的多种方法之一。

这篇关于创建包含子模块的精确Git存储库并将其推送到具有精确文件夹结构的GitHub的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆