参考http://www.jianshu.com/p/129e721adc6e

我在公司里看到其他同事都使用git pull --rebase拉取远程代码,而我总是用git pull,也有同事和我说过用rebase拉取代码会安全一些。但是我一直没搞清楚两者的区别,于是上网查了一些资料,就我的理解写了这篇文章。

1.git pull

是git fetch + git merge FETCH_HEAD 的缩写。所以,默认情况下,git pull就是先fetch,然后执行merge 操作,如果加--rebase 参数,就是使用git rebase 代替git merge。

2.merge 和 rebase

merge 是合并的意思,rebase是复位基底的意思。

现在我们有这样的两个分支,test和master,提交如下:

D---E test
/
A---B---C---F master

在master执行git merge test,然后会得到如下结果:

D--------E
/ \
A---B---C---F----G test, master

在master执行git rebase test,然后得到如下结果:

A---B---D---E---C'---F' test, master

通过上面可以看到,想要更好的提交树,使用rebase操作会更好一点。这样可以线性的看到每一次提交,并且没有增加提交节点。

在我们操作过程中。merge 操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。

而rebase 操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。

最新文章

  1. Python脚本调用Django内容
  2. MongoDB系列一:CentOS7.2下安装mongoDB3.2.8
  3. Lua手动编译姿势
  4. ASP.Net 在Update Panel局部刷新后 重新绑定JS方法
  5. HDU 4504 威威猫系列故事——篮球梦(dp)
  6. VC++ 之常见内存异常值
  7. PHP处理超时方法
  8. 文件系统管理 之 实例解说 fdisk 使用方法
  9. 学习练习 Java冒泡排序 二分查找法
  10. centos Supervisor
  11. P2661 信息传递 强连通分量
  12. wuzhicms常见函数方法的整理收集
  13. Overview of the Packages JAXP
  14. MySQL事务处理2
  15. php curl 获取 HTTPS
  16. Mysql中int(2)和int(10)的区别
  17. webservice时间类型XMLGregorianCalendar和Date的转换
  18. 排序(Sort)-----选择排序
  19. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 0、学习目标
  20. PRML5-神经网络(1)

热门文章

  1. 交友app
  2. Html5 history Api简介
  3. symfony2笔记
  4. python集合可以进行相减
  5. HTML5权威指南之—第三章
  6. Nodejs创建HTTPS服务器
  7. 从头认识java-13.7 什么时候使用泛型?
  8. 通过已有Nginx镜像创建私有仓库
  9. ios6--UILabel
  10. Codesys——限定符的使用方法[来自Codesys的Help]