我正在将项目从TFS转换为git,并且我想保留所有历史记录。如何在另一个顶端添加git仓库
问题在于一年前TFS项目在TFS中移动。 使用git-tfs我可以将两个位置转换为git,但现在我有两个git存储库:A和B.
我已经设法将A和B都放入与不同分支相同的存储库中。是否有可能将B中的第一次提交的父代更改为A中的最后提交?
Branch A: a -> b -> c
Branch B: d -> e -> f
我想有
a -> b -> c -> d' -> e' -> f'
解决方案:
git filter-branch --parent-filter 'sed "s/^\$/-p <last-commit-in-A>/"' HEAD_OF_B
这确实不起作用,因为git存储库不共享历史记录。 A的最后一次提交和B的第一次提交具有完全相同的内容。但是他们的SHA1哈希值不一样。这两个回购已经从TFS转换而来。 – sighol
@sighol你是什么意思的“不工作”?我以'git merge'为例。也许'git rebase'更适合你的情况。 –
我不认为'git merge'或'git rebase'将会起作用,因为这两个分支有不相关的提交。分支A:a - > b - > c 分支B:d - > e - > f 这两个早午餐完全不相关的历史。我想要这个历史 a - > b - > c - > d' - > e' - > f' 我不能使用rebase,因为rebase会移除merge commit。 – sighol