为什么交互式变基会将我的提交压缩在一起?

3

假设我有以下三个提交:

c - Third Commit
b - Second Commit
a - First Commit

我使用以下命令执行交互式变基(如另一个StackOverflow线程所述)

$ git rebase --interactive bbc643cd^

In the default editor, modify 'pick' to 'edit' in the line whose commit you want to modify. Make your changes and then commit them with the same message you had before:

$ git commit --all --amend --no-edit

to modify the commit, and after that

$ git rebase --continue
问题在于有时候,当我完成操作后,提交记录被合并为一个单独的提交(例如我的示例中的最老的提交a)。
看起来这可能与需要解决的合并冲突有关,所以我怀疑我在解决后继续操作时出了问题。在解决合并冲突后,我不确定是否只需要执行git rebase --continue,还是需要同时执行$ git commit --all --amend --no-editgit rebase --continue。似乎在两种情况下,我都会得到合并的提交记录,但我不确定。
我做错了什么?

如果我没记错的话,如果你在手动解决冲突后执行 commit --amend 命令,那么你将修改 之前 的提交记录。 - Tobia Tesan
1个回答

4

正如评论中Tobia Tesan所说,--amend选项会将文件添加到上一个提交中,而不是创建一个新的提交。

如果您不使用此选项,则应该可以正常工作。


那么我应该做的一切都一样,除了解决合并冲突之后,我应该执行:git commit --all --no-editgit rebase --continue - Pete

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