git - 使用 EXACT 文件夹结构创建包含子模块的 EXACT 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,包括子模块中的实际文件作为该特定子目录中的文件。
首先,不要使用子模块,它们不适合你想做的事情。
其次,尝试子树方法:我解释了submodule 和 subtree 之间的区别,并在此处说明了 subtree。
看:
- “ Git 子树的力量”,作者 Nicola Paolucci。
- " Git 子树:Git 子模块的替代方案"
git subtree
允许您将一个存储库作为子目录嵌套在另一个存储库中。它是 Git 项目管理项目依赖项的几种方式之一。
推荐阅读
- docker - 如何使用 nginx-proxy 运行 laradock?
- amazon-elastic-beanstalk - 为什么 .elasticbeanstalk 文件夹包含在 .gitignore 中?
- python - 当我从一个模块中导入一个特定函数时,除了该函数之外还有代码,它运行整个模块
- python - 处理在 Python 中的构造一致性较差的 CSV
- mysql - Eloquent 按关系过滤(仅最后一条记录)
- powershell - 如果文件夹中的文件超过 1 分钟,则发送电子邮件,否则不要在 Powershell 中发送任何内容
- java - 我可以从 spring bean 访问 graphql-context 吗?
- java - 我正在使用 java JpaRepository 创建一个 Api 我需要在查询中放置一个变量
- java - Java Streams 术语 - 中间 - 非终端之间的区别
- inheritance - 如何建模此发票要求