我试图合并2个提交为1,所以我遵循“压缩提交与rebase”从git就绪。
我跑
git rebase --interactive HEAD~2
在结果编辑器中,我将pick更改为squash,然后save-quit,但由于出现错误,重基操作失败
没有之前的提交就不能“squash”
现在我的工作树已经达到了这个状态,我很难恢复。
命令git rebase——interactive HEAD~2失败:
交互式改基已经开始
git rebase -continue失败
没有之前的提交就不能“squash”
$git变基--堕胎
如果你想要撤销git rebase,可以在任何时候运行这段代码
我们赢了
重新应用最近两次提交。上面的命令将打开一个代码编辑器
[最近一次提交将在底部]。改变最后一个
致力于壁球运动。因为squash将与之前的提交融合。
然后按esc键并输入:wq保存退出
输入:wq后,您将进入active rebase模式
注意:如果没有警告/错误消息,您将获得另一个编辑器,如果有错误或警告另一个编辑器将不显示,您可以通过运行中止
$ git rebase -中止如果你看到一个错误或警告,否则继续运行$ git rebase -继续
您将看到2 commit消息。选择一个或自己写提交信息,保存并退出[:wq]
注意2:如果运行rebase命令,可能需要强制将更改推送到远程回购
$ git push -f
$ git push -f origin master
假设你在自己的主题分支里。如果你想把最后两个提交合并成一个,看起来像一个英雄,就在你做最后两个提交之前分支提交(使用相对提交名称HEAD~2指定)。
git checkout -b temp_branch HEAD~2
然后在这个新分支中挤压提交另一个分支:
git merge branch_with_two_commits --squash
这将带来改变,但不会导致改变。所以只要承诺就行了。
git commit -m "my message"
现在您可以将这个新的主题分支合并回您的主分支。