如何从分支启动新的repo而不会丢失该分支及其子分支的历史记录

时间:2013-05-02 14:47:47

标签: git

我有一个非常古老而庞大的GIT回购。很久以前,创建了一个分支A,它自创建以来一直作为主要的开发分支。创建其他分支以实现功能 - 始终将分支A作为根并合并回分支A。

我想做的是启动一个新的GIT存储库。新的存储库将创建分支A作为其开始(其历史的开始)。因此,我想放弃以前的历史。

我不是GIT初学者,但由于这不是标准的GIT操作,我想问你们有关我如何能够实现我刚才描述的任何建议,想法,有用的链接。

让我的问题简短: 如何从分支机构开始新的仓库而不会丢失该分支及其子分支的历史记录?

1 个答案:

答案 0 :(得分:1)

对于您想要的每个分支,创建一个历史较短的新分支。分支A是最重要的分支。使用git checkout --orphan new_A <branching_point_SHA>创建一个在分支点之外没有历史记录的新分支。然后删除旧A,并使用git branch -mnew_A重命名为A本身。对所有相关分支重复。删除所有不相关的分支,好吧,因为它们无关紧要和无用。

删除早于分支点的所有标记。很明显,你不需要那些。

现在您应该没有对历史记录的旧部分的引用,您可以使用git gc进行清理。

由于你不是Git初学者,你显然必须明白它会重新计算所有提交哈希值等。安全播放。