git rebase 合并多个 commit

有个 JAVASEO 项目,由于种种原因前前后后拖了三个月,下周一上线,于是打算合到 master 上。可当合并时才记起,我都在 test_branch 分支上开发了,一开始从主分支派生的分支没用到,同时由于历史原因,这个测试分支和主分支不同步,不能直接合并。

出现问题了,就得解决问题。于是我就祭出了之前看的 rebase 合并多个 commit 的技巧,具体是这样的,先查看这期需求开始到现在工提交了多少个 commit

$ git log --oneline --since "3 months ago" | wc -l
36

36 个,于是开始了我的表演, rebase36 提交,合并成一个

 git rebase -i HEAD~36

在这里插入图片描述
pick 改为 s ,也就是 squash 的缩写,意思是 git 会应用这个补丁,但会与之前的提交合并

:%s/^pick/s/g

同时保留最上面的 pick ,意思是 git 会应用这个补丁,以同样的提交信息(commit message)保存提交,然后 wq 保存,Rebasing 后会弹出个窗口,修改下提交,不过太长了,我懒得修改了,因为这些提交说明就是这次需求的点,继续 wq 保存。

在这里插入图片描述
到这里就成功的把 36 个合成了 1commit,把分支切到 master 上,然后 git cherry-pick 那个 commit-id 即可。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值