我如何`git rebase -i`并阻止"你要求修改最近的提交,但这样做会使它变空."?

z5h*_*z5h 19 git git-rebase

我想跑一个git rebase -i some-hash.

当我运行它时,我收到错误:

您要求修改最近的提交,但这样做会使其为空.您可以使用--allow-empty重复命令,也可以使用"git reset HEAD ^"完全删除提交.
[...]
无法申请[...]

该错误似乎特定于单个提交,因为--allow-empty这不是我可以传递给rebase的选项.

显然--keep-empty我是一个可以传递的选项git rebase,但它似乎没有解决问题.

如果rebase中的提交最终没有效果,我怎么能改变并告诉git呢?

z5h*_*z5h 22

好像在跑步:

git commit --allow-empty
git rebase --continue

创建2个压缩提交,而不是一个.运行git rebase -i some-hash允许我将2个新提交压缩成一个.


Yar*_*Yar 5

如果您没有对单个提交进行变基并面临同样的问题,则原因是变基的最终结果是空提交。

假设您不想提交空提交,假设您有这两个提交:

commit 1
commit 2
Run Code Online (Sandbox Code Playgroud)

当您想要合并这两个提交(例如git rebase -i HEAD~2)时,您会收到错误,解决方法是通过执行以下命令两次来重置这两个提交:

git reset HEAD^
Run Code Online (Sandbox Code Playgroud)