问题描述
我想将多个历史提交组合在一起,同时不接触最近的提交,如图所示,我只想将2-4个提交组合在一起。
阅读相关答案和帖子后,我尝试了 git rebase - i HEAD~5
并在 vim 中修复和重命名提交,但我发现这会将它们合并为一个提交。有没有一种方法可以组合中间提交,同时保持最近的提交不变?
解决方法
@LWang, 不可以。你不能合并中间的提交,而保持最近的提交不变。
但是,如果您必须这样做,别无选择,那么您可以重置为您需要更改的提交并重新开始提交。 只有在很少(一两个)提交时,我才会推荐这个 保留,您非常清楚哪些更改会导致哪些提交。
在您的示例中,您可以按照以下步骤操作;
**git reset -- mixed 66b8e0b** (Your changes will be preserved)
**git add <filename>** (add only those files which are required for the middle commit)
**git commit <commit message>** (Enter the commit message for the middle commit)
**git add <filename>** (add all the pending files)
**git commit -m "Wireup survey flag"**