将存储库拆分为 "sub-repositories",同时将远程保留到外部存储库

Split a repository into "sub-repositories" while retaining remote to a foreign repository

我的主要开发项目是 "total conversion" 一款名为 NAEV 的游戏。我的 TC 名为 SoC("Stars of Call" 的缩写),它设置在与 NAEV 完全不同的宇宙中,但按原样使用游戏源。由于我有限的 C 能力,我有时会向 NAEV 伸出援手。它是用 C 编写的,基本上有两个子文件夹src(C 源代码)和 dat(XML/Lua数据)。

NAEV 存储在 GitHub 上,在其名为 naev/naev 的存储库中,我不拥有 .我在 GitHub 上有 我自己的克隆 Mutos/naev,我与 naev/naev 保持同步。为此,我使用了一个本地存储库,其中 origin 指向 Mutos/naev 并且 upstream 指向 naev/naev,如 https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork.

因此,我通过尝试与 NAEV 保持联系并专注于描述 SoC 世界的数据来开发 SoC。所以问题是,SoC 必须具有与 NAEV 相同的 src 文件夹,但是 完全不同的 dat 文件夹。

目前,我手动将我的 SoC src 文件夹与 NAEV src 文件夹同步。但这意味着我丢失了提交历史并且无法根据 NAEV 的演变逐步调整我的数据,逐个提交。所以 SoC 总是落后于 NAEV,每次我想更新 SoC 的 src 时,我都很难调整我的数据。

我想要的是为 SoC 设置第三个存储库,名为 Mutos/SoC,其 src 文件夹将遵循 NAEV src,而其 dat 文件夹将完全独立来自 NAEV 的 dat 文件夹。

如何实现?请注意,我对 GitHub 不是很熟练,因为我只是偶尔使用它。所以我需要一些解释才能理解 n00b 级别 ^-^

感谢任何提示!

这可能不是您想要的,但您可以考虑:

  1. 正在添加 git 个子模块或...
  2. 移动同一父目录下的目录 git 目录

进入一个初始化的 git 存储库,您希望在其中存储其他存储库。然后,在同一目录中,使用:

git submodule add <repo url>

例如,

git submodule add https://github.com/rust-lang/rust.git

您可以找到存储库 url,方法是转到存储库的主页并单击 "clone or download,",然后复制 link。

如果这些还不是 git 存储库,则不能将这些目录添加到同一个 git 存储库。您包含的每个目录都需要是 git 初始化目录的子目录。如果是,那么您可以使用:

git add <directory path>

例如,

git add ./subdirectory1/subdirectory2