当前位置:   article > 正文

git rebase 合并多个 commit_git rebase 合并另一个分支的多个commit

git rebase 合并另一个分支的多个commit

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

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

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

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

 git rebase -i HEAD~36
  • 1

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

:%s/^pick/s/g
  • 1

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/500238
推荐阅读
相关标签
  

闽ICP备14008679号