我最近通过替换有许可协议冲突的代码部分,将商业许可代码转换为BSD许可证。我在私人bitbucket git存储库中完成了所有这些工作。现在我准备在github公共git存储库中将它发布给公众。因此,我需要通过忘记早期存储库历史(包含专有代码)来创建新存储库。换句话说,我有
M1 - M2 - ... - Mgood - Mgood+1 - ... - Mtip
\ B1 - B2 - ... - Btip
我在新回购中想要的是:
Mgood - Mgood+1 - ... - Mtip
\ B1 - B2 - ... - Btip
在Mgood之前的存储库历史记录(注释,更改等)完全被遗忘。对git来说相当新,这听起来很容易,但我还没有找到最干净的方法。
答案 0 :(得分:0)
您可以使用git rebase -i
你只需要将olds提交压缩成一个:
s M1
s M2
p Mgood+1
p Mtip
所以在这里你将M1
和M2
标记为壁球(s
标志)并保留所有其他提交(c
标志)
但如果你的历史非常悠久,那么这可能是很多手工作品。