我想合并2个git存储库,并且我想保留文件历史记录,但我不想保留提交历史记录。换句话说,我想随时保持这些变化,但我不关心SHA校验和。合并后,我不需要旧版本库。组合2个git存储库,保留文件历史记录,不保存提交历史记录
以下问题的答案不帮我,因为我总是用两个根回购结束并分开提交历史:
我想要做的,与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。我并不关心标签,不同分支或一个分支之间的提交,但是在标签处必须有某个合并点。
唯一的想法,我能想出这么远,可能工作(我已经尝试了所有我能与子树找到并合并):
- 添加repoB作为远程
- 在repoA添加一个分支(mergeB)在标签A-1.0.0
- 从repoB樱桃挑提交到标记B-1.0.0到分支mergeB
- 结帐A-1.0.0
- 合并之前在历史上的一个点分支合并B
- 樱桃采摘从旧标签A-1.0.0 + 1 repoA每次提交到老脸
- 分支再次
- 重复步骤3-7为下一个标签
- 当一切都做,做一个rebase(也许交互式)来清理东西
这听起来像很多手动工作,有没有更好的方法来做到这一点?
我想我不清楚。我想保留文件历史记录,但我不想保留提交散列。从svn到git的转换进行得非常顺利,这是由我的git回购包含标签的事实所暗示的。事实上,他们来自svn并不相关并且令人困惑,所以我会编辑它。 –