从现有仓库中的指定提交开始创建新的 Git 存储库



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

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

我在新存储库中想要的是:

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

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

您可以使用git rebase -i

你只需要将旧的提交压缩为一个:

s M1
s M2
p Mgood+1
p Mtip

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

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

最新更新