码迷,mamicode.com
首页 > 其他好文 > 详细

git fetch 、git pull 与 git pull --rebase

时间:2017-05-01 22:21:11      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:取消   pat   应用   版本管理   保存   目的   没有   div   命令   

  1. git fetch 与 git pull

  都是从远程拉取代码到本地,git fetch只是拉取到本地,git pull不仅拉取到本地还merge到本地分支中。所以git pull是git fetch与git merge的集合体。 
  

  2. git pull 与 git pull --rebase

      git pull的默认行为是git fetch + git merge, 
  git pull --rebase则是git fetch + git rebase.

  从目的来说,两者没差别,运行之后, 能获得一样的code base。但从版本管理角度,这两者有各自的使用意义。对比来看,git merge多了一次提交--“合并提交”。git rebase则没有。

  git merge:
  简单来说,它把两条不同分支历史的所有提交合并成一条线,并在“末端”打个结,即生成一次合并提交。最后形成一条单一的提交线。

  git rebase:
  根据参数的不同,行为有些差别。但总的来说,它相当于把分叉的两条历史提交线中的一条,每一次提交都捡选出来, 在另一条提交线上提交。最后也形成一条单一的提交线。

  表示把本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上。

  在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
  $ git rebase --continue
  这样git会继续应用(apply)余下的补丁。
  在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。
  $ git rebase --abort

  

  

git fetch 、git pull 与 git pull --rebase

标签:取消   pat   应用   版本管理   保存   目的   没有   div   命令   

原文地址:http://www.cnblogs.com/EnSnail/p/6792970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!