我想合并两个git存储库,我想保存文件历史,但我不想保存提交历史。换句话说,我想保持时间的变化,但我不关心SHA校验和。合并后我将不需要旧的存储库。
以下问题的答案对我没有帮助,因为我总是以具有两个根和单独提交历史的回购结束:
我想要做的是,与Detach (move) subdirectory into separate Git repository完全相反,git subtree用于过滤所有影响子目录中文件的提交。
我的两个存储库有一些重叠的目录结构,但是没有重叠的文件(除了.gitignore和.gitattributes),我想将它们合并到存储库的根目录。
这两个存储库都有一些标记,它们的命名方案略有不同,但指向特定的版本。例如,repoA有标记A-1.0.0,A-1.0.1,而repoB有标记B-1.0.0,B-1.0.1。我并不真正关心标记、不同分支或一个分支之间的提交,但是在标记中必须有一个合并点。
到目前为止,我能想出的唯一可行的方法是(我已经尝试了我所能找到的所有关于淹没树和合并的方法):
这听起来像是很多体力活,有更好的方法吗?
发布于 2015-06-18 20:34:05
尝试以下步骤。您基本上是复制文件从一个到另一个,然后开始一个新的回购。或者,将init放在第三个位置,并将两个旧的复制到其中。
git clone repo1 a
git clone repo2 b
cp -r a b
rm -rf a/.git
rm -rf b
cd a
git init顺便说一句,有一些将snv转换为Git的工具可以保存历史,所以也许您应该研究使用它们。
https://stackoverflow.com/questions/30919163
复制相似问题