在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。

merge:

merge有两种方法,fast-forward(快速合并)和three-way merge(三方合并)

1、快速合并:

两个branch在一条线上,合并master和feature0只需要将master指针后移

2、三方合并:

情况:

选取C2,C4,C6生成快照,形成新commit C7,当前branch指向C7

rebase:

1、git rebase --onto

例子:(想要将client合并到master,但不想合并server)

git rebase --onto 变基目标分支 变基过渡分支 变基当前分支

$ git rebase --onto master server client

快速合并master和client,如下

server完成了,想要合并到master处

git rebase --onto 变基目标分支 变基当前分支

$ git rebase master server

2、rebase –interactive

git rebase -igit rebase --interactive,使用该指令可以合并提交历史,其后参数可以是某一特定提交对象ID或执行特定提交对象的指针,将输出该提交对象之后的所有提交对象(不包括该提交对象),如HEAD~表明输出当前分支最新一次提交对象,HEAD~~表明输出当前分支的最新的两次提交对象。HEAD~n表示输出当前分支最后n次提交

git rebase -i origin/master:可以获取最后一次从origin远端仓库拉取(pull)或推送(push)之后的所有提交。

3、变基使用原则

永远不要对已经推到主干分支服务器或者团队其他成员的提交进行变基。

变基操作的实质是丢弃一些现有的提交,然后相应地新建一些内容一样但实际上不同的提交。如果你已经将提交推送至某个仓库,而其他人也已经从该仓库拉取提交并进行了后续工作,此时,如果你用 git rebase 命令重新整理了提交并再次推送,你的同伴因此将不得不再次将他们手头的工作与你的提交进行整合,如果接下来你还要拉取并整合他们修改过的提交,事情就会变得一团糟。

最新文章

  1. DataNavigatorButtons
  2. 微信小程序文件作用域模块引用
  3. [转]windows 软链接的建立及删除
  4. 一张图总结Google C++编程规范(Google C++ Style Guide)
  5. python并发之多线程
  6. 轻松掌握VS Code开发.Net Core及创建Xunit单元测试
  7. Ajax核心--XMLHttpRequest对象
  8. js 把 json 转为以 ‘&’ 连接的字符串
  9. python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性
  10. 框架源码系列四:手写Spring-配置(为什么要提供配置的方法、选择什么样的配置方式、配置方式的工作过程是怎样的、分步骤一个一个的去分析和设计)
  11. Uni2D 入门 -- Skeletal Animation
  12. EM算法与混合高斯模型
  13. Nginx反向代理转发Host设置
  14. asp.net 中用easyui中的treegird的简单使用
  15. Js中split()方法的正确使用
  16. 2018百度之星开发者大赛-paddlepaddle学习(二)将数据保存为recordio文件并读取
  17. 对 JavaScript 进行单元测试的工具
  18. 【Java】if判断boolean类型
  19. 转:Eclipse ADT的Custom debug keystore所需证书规格
  20. MBR和GPT(分区)

热门文章

  1. 织梦文章分页后文章title的修改使得不一致
  2. dict built-in function
  3. mysql忘记root用户密码找回步骤
  4. 关于encodeURIComponent的用法
  5. Java中的ArrayList
  6. iOS之strong和copy
  7. Vue之组件的内容分发
  8. h.264的POC计算(转载)
  9. JAVA基础--JAVA语言组成01
  10. AndroidStudio中添加依赖的三种方式以及如何引入so文件和arr文件