Git:将存储库移至另一个存储库的子文件夹

gri*_*edj 3 git bitbucket

我有两个单独的git存储库(位于BitBucket中)Repo ARepo B。我想Repo B进入的子文件夹Repo A。我还需要确保Repo B保留提交历史记录等,并且不会丢失。

如何使用git实现此目的?

小智 8

要将回购B作为子文件夹合并到回购A中,请在回购A中运行此命令;

git subtree add -P <prefix> <repo> <rev>
Run Code Online (Sandbox Code Playgroud)

设置<prefix>为子目录的名称,存储库<repo>B的克隆URL以及所需的存储库B <rev>的修订版(如果最新,则为HEAD)

这将获取存储库B的历史记录,并将其与存储库A合并,并执行其他合并提交。

  • 对于任何在谷歌上搜索尝试将 **Repo A** 子文件夹移动到子文件夹 **Repo B** 的问题的人,我能够通过首先遵循 [GitHub 上的这篇文章将子文件夹拆分为另一个子文件夹来解决此问题存储库](https://www.help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository)(唯一的区别是我为此创建了一个本地存储库,所以我停在了步骤5 并将其推送到我本地创建的存储库中)。然后我按照这个答案将其推入子文件夹中: `&lt;prefix&gt;` = `"My/Sub/Directory with space"` 并且效果很好! (3认同)