【问题标题】:Merge separate git repositories into one repository, organized by folders将单独的 git 存储库合并到一个存储库中,按文件夹组织
【发布时间】:2015-10-16 23:25:30
【问题描述】:

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

我想做的是创建一个大型 repo 并将我所有的挑战合并到大型 repo 中自己的文件夹中。这样在 GitHub 上我就没有一百万个不同的存储库;而是在一个大型 repo 中,以文件夹的形式组织。

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

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

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

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

我如何获取上面的每个文件夹,将它们合并到一个带有各自提交历史和自己的文件夹的大型 repo 中?

【问题讨论】:

    标签: git github merge directory repository


    【解决方案1】:

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

    确保在执行之前至少创建一个初始提交 子树合并。

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

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

    例如,在 201PracticalExcerise repo 中,执行以下操作:

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

    然后对每个重复一遍(这样它们就已经在正确的子目录中了)。

    我会先在一对夫妇身上试一试,看看它是否有效。

    【讨论】:

    • 那么在每个 repo 中的每个文件上做一个git mv 吗?
    • 希望我澄清了我的意图。我没有尝试过,但它似乎应该可以工作。
    • 我尝试按照您的建议进行操作。但是在教程中说要创建git read-tree 的步骤中,它会在目录中创建另一个201PracticalExcerise 文件夹,其中也包含相同的文件。换句话说,它会在自己内部创建目录的副本。
    • 嗯不知道,但它似乎确实有点接近?我正在投票这个问题,所以它可能会得到以前做过这个的人的更多关注......这是一个有趣的问题。
    • 您是否确保遵循指南中的评论:确保在进行子树合并之前至少创建一个初始提交。?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2015-06-28
    • 2019-07-18
    • 1970-01-01
    • 2012-05-12
    • 2016-01-23
    相关资源
    最近更新 更多