使用历史记录和多个文件夹突破 github monorepo
Break out github monorepo with history and multiple folders
我们有一个存储库,其中包含多个项目 - 所以它现在是一个单一存储库。
我们需要将多个文件夹连同它们的历史一起分解成新的存储库。即:
Current repo "Monorepo" folders:
- Foo_1
- Foo_2
- Bar_1
- Bar_2
- Bar_3
- Stuff_to_keep_here
- Total_junk_1
- Total_junk_2
每个文件夹包含各种文件,Foo 是一个项目,Bar 是另一个项目,Total_junk 是我们不想污染任何 repos 历史的东西(csv 文件、jpg、 ETC)。一旦 Foo 和 Bar 项目被分解,我们就不需要再将它们保留在 Monorepo 中。
我在 SO 上观看了数小时的 youtube 视频并阅读了许多问答帖子,但我找不到适合我们案例的帖子。他们都只将 1 个文件夹带到新的存储库,或者他们制作了一个似乎不起作用的镜像,或者其他一些让我无法实现目标的细节。
谁能提出一个解决方案:
- 允许将多个文件夹拆分为一个独立于原始文件夹的新存储库
- 有历史
- 这允许旧存储库删除这些文件夹
- 但也允许删除其他历史记录
在测试和评估多个路径之后,我发现了 2 个可以对原始存储库造成最小风险的工作。
导入回购 - https://docs.github.com/en/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer。如果您想复制整个存储库然后从那里进行编辑,此选项很有效。
拆分子文件夹 - https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository。这正是我们要找的。它不会提取根目录中的文件,因此它以子文件夹为中心。可用于创建多个子文件夹(link 中的示例)。
我们正在为我们的目的实施#2。
我们有一个存储库,其中包含多个项目 - 所以它现在是一个单一存储库。
我们需要将多个文件夹连同它们的历史一起分解成新的存储库。即:
Current repo "Monorepo" folders:
- Foo_1
- Foo_2
- Bar_1
- Bar_2
- Bar_3
- Stuff_to_keep_here
- Total_junk_1
- Total_junk_2
每个文件夹包含各种文件,Foo 是一个项目,Bar 是另一个项目,Total_junk 是我们不想污染任何 repos 历史的东西(csv 文件、jpg、 ETC)。一旦 Foo 和 Bar 项目被分解,我们就不需要再将它们保留在 Monorepo 中。
我在 SO 上观看了数小时的 youtube 视频并阅读了许多问答帖子,但我找不到适合我们案例的帖子。他们都只将 1 个文件夹带到新的存储库,或者他们制作了一个似乎不起作用的镜像,或者其他一些让我无法实现目标的细节。
谁能提出一个解决方案:
- 允许将多个文件夹拆分为一个独立于原始文件夹的新存储库
- 有历史
- 这允许旧存储库删除这些文件夹
- 但也允许删除其他历史记录
在测试和评估多个路径之后,我发现了 2 个可以对原始存储库造成最小风险的工作。
导入回购 - https://docs.github.com/en/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer。如果您想复制整个存储库然后从那里进行编辑,此选项很有效。
拆分子文件夹 - https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository。这正是我们要找的。它不会提取根目录中的文件,因此它以子文件夹为中心。可用于创建多个子文件夹(link 中的示例)。
我们正在为我们的目的实施#2。