1

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

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

我不是 GIT 初学者,但由于这不是标准的 GIT 操作,所以我想请你们提供任何建议、想法和有用的链接,了解如何实现我刚才描述的内容。

为了让我的问题简短: 如何在不丢失该分支及其子分支的历史的情况下从一个分支开始一个新的回购?

4

1 回答 1

1

对于您想要执行的每个分支,创建一个历史较短的新分支。分支A是最重要的。用于git checkout --orphan new_A <branching_point_SHA>创建一个没有超出分支点的历史记录的新分支。然后删除旧的A,并使用git branch -mto 重命名new_AA本身。对所有相关分支重复此操作。删除所有不相关的分支,好吧,因为它们不相关且无用。

删除所有早于分支点的标签。很明显,您不需要这些。

现在您应该没有对历史的旧部分的引用,您可以使用git gc.

由于您不是 Git 初学者,您显然必须了解它会重新计算所有提交哈希等。请放心。

于 2013-05-02T18:31:06.493 回答