对比 git pull和 git pull --rebase的使用区别

对比 git pull和 git pull --rebase的使用区别

首选区别这两个操作:

git pull = git fetch + git merge FETCH_HEAD 
git pull --rebase =  git fetch + git rebase FETCH_HEAD 

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

  • 远程分支origin(master),两位同学"77"和"88" 分别克隆创建本地仓库77(master)88(master)
       77(master)
     /    
A---B  origin(master)
     \
       88(master)
  • "77"同学完成代码C和D,并执行commit,push命令。"88"同学完成代码C和D,并执行commit命令。如下结果:
               77(master)
             /    
A---B---C---D  origin(master)
     \
      E---F    88(master)
  • “88” 同学需要先pull才可以push。那区别就来了:

git pull

$ git pull
$ git add .  // 发生冲突并解决后执行 add 和 commit,无冲突跳过。
$ git commit -m '解决冲突'
$ git push
               77(master)
             /    
A---B---C---D---G  origin(master)
     \         /  \
      E-------F     88(master)

git pull --rebase

$ git pull --rebase
$ git add .  // 发生冲突并解决后执行 add 和 rebase,无冲突跳过。
$ git rebase --continue
               77(master)
             /    
A---B---C---D---E'---F'  origin(master)
                      \
                        88(master)

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

  1. git rebase --abort

执行之后,本地内容会回到提交之间的状态,也就是回到以前提交但没有git-pull时的状态,简单来说就是撤销rebase。

  1. git rebase --skip

执行之后,引起冲突的git-commit(s)会被丢弃。因此,在使用skip时请慎重。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值