我想组合2个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。我并不关心标签,不同分支或一个分支之间的提交,但是在标签处必须有某种合并点。
到目前为止,我能想出的唯一想法是可行的(我已尝试过用子树和合并找到的所有内容):
这听起来像很多手工作品,有更好的方法吗?
答案 0 :(得分:-1)
请尝试以下步骤。您基本上是将文件从一个复制到另一个,然后从一个新的回购开始。或者,在第三个位置初始化并将旧的复制到它。
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来保存历史记录,所以也许你应该调查使用它们。