Git合并多个 Commit

有的时候我们在代码提交时会提交很多次commit,每次只改一点点,代码review起来和合并master都有一定的成本。 所以合并之前最后将自己分支的多个commit合并,这样便于codereview。

通过git log查看日志

通过rebase -i合并日志

我们需要将 2dfbc7e8 和 c4e858b5 合并成一个 commit,那么我们输入如下命令

其中,-i 的参数指的是不需要合并的 commit 的 hash 值,这里指的是第一条 commit不需要合并, 接着我们就进入到 vi 的编辑模式

可以看到其中分为两个部分:

  • 上方未注释的部分是填写要执行的指令
  • 而下方注释的部分则是指令的提示说明。

指令部分中由前方的命令名称、commit hash 和 commit message 组成。

当前我们只要知道 pick 和 squash 这两个命令即可。

  • pick 的意思是要会执行这个 commit 简写p
  • squash 的意思是这个 commit 会被合并到前一个commit 简写s

我们将 c4e858b5 这个 commit 前方的命令改成 squash 或 s(可以从上向下,除了第一个是p外其他都改成s),然后输入:wq以保存并退出

这是我们会看到 commit message 的编辑界面,这个界面可以设定一个新都commit message信息。

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

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

rebase操作之后,可以执行git push origin [分支] -f ,进行强制提交。

注意事项:

如果这个过程中有操作错误,可以使用 git rebase --abort来撤销修改,回到没有开始操作合并之前的状态。

当我们想撤销rebase命令,可以这样:

git rebase --abort

转载于:https://my.oschina.net/u/1000241/blog/1841373

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值