【发布时间】:2012-02-27 20:54:08
【问题描述】:
如何删除从master 分支的提交?
我通过Git subtree 将一个大型库以及非常丰富的提交历史(并且早于我的代码)添加到子目录中。我想追溯压缩整个历史记录,但仍然能够合并到库中的新提交。
我尝试了git rebase 的各种组合,但我从未得到预期的结果 [*]。
我的存储库看起来像:
A---B-----------F---G master
/
... C---D---E
我希望它看起来像:
A---B-----------F'--G' master
/
E'
或:
A---B-------E'--F'--G' master
[*]:
git rebase --onto C E mastergit checkout F; git rebase --onto C E master
【问题讨论】:
-
合并将受到这种挤压的影响。你为什么要压扁它?只是为了清理 gitk/git 日志输出?
-
是的,而且所有之前的提交都达到了几百兆字节。
-
您通过将库的开发历史集成到项目存储库中来导入库的决定很奇怪。
-
确定将其限制在最后一次提交会节省很多空间吗?
-
为了更清晰的输出,您可以使用子模块。为了节省空间,您可以尝试以浅模式克隆该库。
标签: git git-rebase git-subtree