简单对比git pull和git pull --rebase的使用

使用下面的关系区别这两个操作:

git pull = git fetch + git merge

git pull --rebase = git fetch + git rebase

现在来看看git merge和git rebase的区别。

假设有3次提交A,B,C。

在远程分支origin的基础上创建一个名为"mywork"的分支并提交了,同时有其他人在"origin"上做了一些修改并提交了。

其实这个时候E不应该提交,因为提交后会发生冲突。如何解决这些冲突呢?有以下两种方法:

1、git merge

用git pull命令把"origin"分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。

2、git rebase

创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。

在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase --continue,这样git会继续apply余下的补丁。

在任何时候,都可以用git rebase --abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 3,794评论 0 10
  • 没事在地图上量了下,每天上下班常走的那条小路大概只有七百米。 细细一想,这七百米的路上有些什么呢? 两家打印店,三...
    梵温2阅读 288评论 0 0
  • 先占位,稍后更新
    SheepYan9阅读 421评论 0 0
  • 文/国境之南 01 立春有段时间了,天气逐渐晴了起来,人们不再裹着厚厚的棉衣,驱寒保暖,换着混...
    国境之南_阅读 1,841评论 40 56
  • 古兵简:古之蛮人,制剑有技,取精金混以黑陨石杂而融,配以相爱男女之心头血制之蛊,遂成一剑,曰情蛊。 清晨的阳光,...
    洛天书阅读 368评论 0 0