赞
踩
在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。
$ git checkout experiment
$ git rebase master
First, rewinding head to replay your work on top of it... Applying: added staged command
它的原理是首先找到这两个分支(即当前分支 experiment、变基操作的目标基底分支 master)的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用。
现在回到 master分支,进行一次快进合并。
优雅地合并分支代码并提交
通过对比两种合并方法,rebase的合并能够让提交历史变成串行,看起来更加整洁。所以在合并代码时,有的人喜欢rebase完成合并。此外,rabase还有个作用,修改提交历史,优雅的合并代码,就是通过适当的rebase修改提交历史,将本地自己开发多个提交进行适当的合并,然后再rebase合并分支。
git log //查询得知总共提交了3次commit
git rebase -i HEAD~3
此时得到如下页面
此时输入 i,进入编辑模式,保留最上面的pick,把下面的所有pick改成 s,然后 esc 最后 :wq 退出。
然后进入如下图的commit信息内容展示部分,输入 i,进入编辑模式,只保留第一个commit信息,其余的删除,#开头的为注释不用关注
最后 esc :wq退出
最终效果如图
最后推送代码
//强制推送到远程
git push -f
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。