转载|git revert + git rebase, 一次性回退多个提交

1. git log 查看当前状态

image

可以看到当前状态有四个提交。现在想用git revert回退这三次提交,但是我们知道git revert是用一次新的提交回退之前的提交,所以我回退三次,就会有三个新的提交,但是我又想只增加一个新的提交,继续看。

 

2. git revert回退依次三个提交

image
image

可以看到执行完三次回退后,又新增了三次提交,现在想将这三次提交合并成一个。

 

3. git rebase合并多次commit

我们想将最近的三个提交合并,首先需要如下命令:


image

其中,-i 的参数是不需要合并的 commit 的 hash 值,这里即从当前时间往前推的第四个提交, 接着我们就进入到 vi 的编辑模式。


image

可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由 前方的命令名称、commit hash 和 commit message 组成。

当前我们只要知道两个命令: pick 和 squash

pick 的意思是要会执行这个 commit

squash 的意思是这个 commit 会被合并到前一个commit

我们将 9ee35f2 和 5eb5678 这两个 commit 前方的命令改成 squash 或 s,然后输入:wq以保存并退出


image

这时我们会看到 commit message 的编辑界面

image

其中, 非注释部分就是三次的 commit message, 我们要做的就是将这三个修改成一个新的 commit message。


image

输入wq保存并推出, 再次输入git log查看 commit 历史信息,你会发现这三个 commit 已经合并了。

image

————————————————
版权声明:本文为CSDN博主「本然233」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35008279/article/details/86316819

推荐阅读
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容