git revert + git rebase 一次性回退多个提交

1. git log 查看当前状态

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

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

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

3. git rebase合并多次commit

我们想将最近的三个提交合并,首先需要如下命令:
在这里插入图片描述
其中,-i 的参数是不需要合并的 commit 的 hash 值,这里即从当前时间往前推的第四个提交, 接着我们就进入到 vi 的编辑模式。
在这里插入图片描述
可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由 前方的命令名称、commit hash 和 commit message 组成。

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

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

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

我们将 9ee35f2 和 5eb5678 这两个 commit 前方的命令改成 squash 或 s,然后输入:wq以保存并退出
在这里插入图片描述
这时我们会看到 commit message 的编辑界面
在这里插入图片描述
其中, 非注释部分就是三次的 commit message, 我们要做的就是将这三个修改成一个新的 commit message。
在这里插入图片描述
输入wq保存并推出, 再次输入git log查看 commit 历史信息,你会发现这三个 commit 已经合并了。
在这里插入图片描述
然后 push 就好啦~

参考:「Git」合并多个 Commit
Git: Allow-empty When Squashing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值