Git 压缩特定提交

Git squash specific commits

我正在使用变基工具压缩最后 3 次提交 错误我做了 使用 git rebase -i HEAD~4 此命令打开如下所示的 VI 交互工具


d 041a84a Fix docs buil(#4)
p 8896b6d handle users
s 8759e73 add new users
s b485efd add phones


041a84a 不相关,我将其标记为 d 不确定 是否仅将其从该分支中​​删除 提交给master的时候 它仍然 r 将它从我 DONT 想要的 master 中删除,我只是想将它从我的分支中删除...... 如果我可以退出 VI 工具并将其更改为 git rebase -i HEAD~3 ??

如果我对你的问题的理解正确的话,你的状态是这样的:

master :     --A--B 
branch :          \--C--C'--C"

其中:
B 是 041a84a ;
C 是 8896b6d ;
C'C 必须被压扁。

现在,如果你申请

d B  Fix docs buil(#4)
p C  handle users
s C' add new users
s C" add phones

这应该导致分支看起来像:

master :    --A--B 
branch :       \--C*

这意味着 master 不会 被更改,只会更改您当前正在变基的分支的历史记录。

终于要回答了"if I can exit from the VI tool and change it to git rebase -i HEAD~3".
使用 q! 无需编写任何内容即可退出 VI,然后您可以自由地执行 git rebase -i HEAD~3