将单独的 git 个存储库合并为一个存储库,按文件夹组织

Merge separate git repositories into one repository, organized by folders

我正在尝试整理我的项目文件夹,其中包含我尝试过的所有 /r/dailyprogrammer 挑战。目前,每个挑战都有自己的文件夹,因此有自己的 git 回购。

我想做的是制作一个大型存储库并将我所有的挑战合并到大型存储库中它们自己的文件夹中。这样 GitHub 我没有一百万个不同的回购协议;而不是在一个大型仓库中,组织在文件夹中。

这是我当前的文件夹结构,其中包含所有小型 git 存储库:

   .
   |-201PracticalExcerise
   |-204Hard
   |-204Intermediate
   |-214Hard
   |-215Easy
   |-215Intermediate
   |-218Easy

我尝试关注 this guide。但是每次我进行合并时,git 存储库中的文件都会被复制到大型存储库的根目录中。然后,当我将这些文件移动到它们自己的文件夹中时,我丢失了提交历史记录。

我不知道如何将文件放入单独的文件夹中。

我如何获取上面的每个文件夹,将它们与各自的提交历史记录和自己的文件夹合并到一个大型存储库中?

首先,请务必遵循指南中的评论:

Be sure to create at least one initial commit prior to doing the sub-tree merges.

如果这不起作用,您可以尝试执行以下操作:

  • 对于每个 repo,进行一次提交,将代码放入您最终想要的子目录中
  • 然后,按照教程进行

例如,在 201PracticalExcerise 存储库中,执行以下操作:

  • mkdir 201PracticalExcerise
  • git mv [all files at root level] 201PracticalExcerise

然后对每一个重复(所以它们已经在正确的子目录中)。

我会先在几个人身上试一下,看看它是否有效。