当我正在开发一个需要几天时间才能实现的大型功能时,我会对本地git存储库执行许多小型提交,并从远程主存储库中提取其他更改。功能完成后,我的本地git repo看起来像是:
现在,我想将所有本地提交推送到远程仓库作为添加功能X的单个提交。在这种情况下,使用'git rebase'进行提交将无效,因为远程提交不是由我完成的( 2和5)也需要被压扁,这不是一种选择。
我设法弄清楚的唯一方法是拥有一个只有远程提交的干净分支,对我的本地开发分支发出'git diff'并将结果补丁应用到clean分支上。然后提交补丁更改并推送。还有更好的方法吗?
答案 0 :(得分:3)
我找到了答案:git rebase -i实际上允许重新排序提交,并且当所有本地提交按顺序重新排序(不与远程提交交错)时,它们可以全部压缩成一个。