如何将一个git仓库添加到另一个git仓库的子文件夹中?

7

我在一个名为AA的文件夹中有一个GIT仓库,另外我还有一个名为BB的GIT仓库。

我想将AA仓库作为子文件夹导入到BB仓库中。

之前的状态:

AA
 |- .git
 |-  A/
 |-  fileA

BB
 |- .git
 |-  B/
 |-  fileB

之后:

BB
 |- .git # new .git with both AA and BB .git infos
 |-  B/
 |-  fileB
 |-  AA/      # <== no .git anymore
 |-  AA/A/
 |-  AA/fileA

我该怎么做呢?


1
这是您正在寻找的内容吗?链接 - cfi
类似但不完全相同。我已经尝试了那里提到的解决方案,但文件夹结构不同。 - Sato
你还需要AA的历史记录吗? - iberbeu
3
请查找“子树合并”。我现在没有时间编写完整的答案,但这应该基本上可以满足您的要求,它能够完全实现您所需的功能。也许这篇 Github 文章可以给你一些初始指引。 - Nevik Rehnel
@NevikRehnel,子树合并完全正确。谢谢! - Kaushik Ghose
1个回答

3
如果文件夹结构不同,可以使用git mv来解决:
  1. 克隆原始仓库,
  2. git mv 所有内容移动到一个名为 AA 的新子目录中。
  3. 然后使用这个答案中的方法从该源仓库进行克隆,该答案来自于这个问题

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接