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

时间:2012-12-17 23:44:07

标签: git repository

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

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

我在新回购中想要的是:

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用git rebase -i

执行此操作

你只需要将olds提交压缩成一个:

s M1
s M2
p Mgood+1
p Mtip

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

但如果你的历史非常悠久,那么这可能是很多手工作品。