2

我最近通过替换具有冲突许可协议的代码部分,将商业许可代码转换为 BSD 许可。我在一个私有的 bitbucket git 存储库中完成了所有这些工作。现在我准备在 github 公共 git 存储库中向公众发布它。所以,我需要通过忘记早期的存储库历史(包含专有代码)来创建新的存储库。换句话说,我有

M1 - M2 - ... - Mgood - Mgood+1 - ... - Mtip
                                   \ B1 - B2 - ... - Btip

我在新回购中想要的是:

Mgood - Mgood+1 - ... - Mtip                   
                   \ B1 - B2 - ... - Btip

完全忘记了 Mgood 之前的存储库历史记录(评论、更改等)。作为 git 的新手,这听起来很容易,但我还没有找到最干净的方法来做到这一点。

4

1 回答 1

0

你可以使用git rebase -i

您只需要将 olds 提交压缩为一个:

s M1
s M2
p Mgood+1
p Mtip

所以在这里你标记M1M2成为壁球(s标志)并保留所有其他提交(c标志)

但如果你有相当大的历史,这可能是很多手工工作。

于 2012-12-18T00:53:54.220 回答