如何在Git中合并分支后压缩提交记录?

4
我在一个名为newFeature的分支中开发了一个新功能。在我压缩newFeature分支上的提交之前,我已将该分支合并到主分支中。
master分支上我的提交历史记录: enter image description here 我尝试过使用命令git rebase -i origin/master,但是与此帖子中的示例不同,文件看起来有所不同。 根据帖子中的答案,它应该类似于以下内容:
pick 16b5fcc Code in, tests not passing
pick c964dea Getting closer
pick 06cf8ee Something changed
pick 396b4a3 Tests pass
pick 9be7fdb Better comments
pick 7dba9cb All done

因为在VIM中,我看不到任何像图片中那样的东西。
我是否需要在rebase ...行和Commands:行之间手动输入pick ...

enter image description here

我也阅读了使用 Git 合并我的最后 X 次提交记录这篇文章,以防git rebase对我不起作用。 我在想git reset --hardgit merge --squash命令是否可以解决我的问题。

当我执行git log时,我可以看到这些提交记录。

问题:

如何将从第一个提交记录aab9e06到提交记录e8abbb0的提交记录压缩(squash)在一起?

1个回答

2

即将完成,您只需要指定要在rebase中使用哪个提交。所以在您的情况下,它应该如下所示:

git rebase -i aab9e06

为什么我应该rebase aab9e06?你能解释一下吗? - Shaohao
1
如果您使用git rebase -i aab9e06,则会留下提交aab9e06 -> xxxxx,其中xxxxx包含aab9e06之后的所有提交。如果您想在压缩提交中包含aab9e06,请使用git rebase -i aab9e06^(或手动输入aab9e06之前提交的哈希值)。您需要告诉git保留哪个提交不变。有关更多信息,请参见https://git-scm.com/docs/git-rebase! - Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接