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

1. git log 查看当前状态

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

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

 

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

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

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

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

 

3. git rebase合并多次commit

我们想将最近的三个提交合并,首先需要如下命令:
《转载|git revert + git rebase, 一次性回退多个提交》
其中,-i 的参数是不需要合并的 commit 的 hash 值,这里即从当前时间往前推的第四个提交, 接着我们就进入到 vi 的编辑模式。
《转载|git revert + git rebase, 一次性回退多个提交》

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

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

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

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

我们将 9ee35f2 和 5eb5678 这两个 commit 前方的命令改成 squash 或 s,然后输入:wq以保存并退出
《转载|git revert + git rebase, 一次性回退多个提交》

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

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

其中, 非注释部分就是三次的 commit message, 我们要做的就是将这三个修改成一个新的 commit message。
《转载|git revert + git rebase, 一次性回退多个提交》

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

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

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

 

推荐阅读
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注