Git 变基成功但存在旧提交

Git rebase successful but old commits exists

我 运行 git rebase -i HEAD~7 一切顺利。但是,当键入 git log 时。我看到了 rebase 提交(压缩了几个提交)以及旧的提交。因此,现在我有 8 次提交,而不是 1 次提交(1 - 7 次旧提交和 1 次 'squashed' 提交)。

我该如何解决这个问题?

当您键入 git rebase -i HEAD~7 时,您会看到如下内容:

pick a873lnd 7 commits ago
pick 9gn283d 6 commits ago
pick k9mdn82 5 commits ago
pick k93m38f 4 commits ago
pick v382ndk 3 commits ago
pick 39mdji2 2 commits ago
pick alv93k3 most recent commit

最早的提交将出现在顶部,最新的提交将出现在底部。当您将提交压缩在一起时,您会从新到旧压缩。所以,如果你想将最近的 6 次提交压缩到第 7 次,你应该做这些更改:

p a873lnd 7 commits ago
s 9gn283d 6 commits ago
s k9mdn82 5 commits ago
s k93m38f 4 commits ago
s v382ndk 3 commits ago
s 39mdji2 2 commits ago
s alv93k3 most recent commit

请注意,最近的 6 次提交有一个 ssquash 的缩写)标签,而最旧的提交仍然是 pick。然后,保存,关闭编辑器,完成rebase。

如果你没有这样做,那么你做了一些事情,而不是像你打算做的那样压缩提交。关于你目前的情况,如果你确定你只是在你的历史之上添加了一个新的提交,那么你可以做另一个交互式 rebase,你只需删除该提交的行,然后进行我上面建议的更改.