Git fast forward push

当只有一个人提交代码给远程分支的时候,本地push就叫做 fast forward.发生的操作是:


Git会在远程讲本地的commits add  on 到当时clone的那个基础提交之上。And git 会做一个叫做fast forward的merge option,讲本地的refs指向最新的提交


当有多个人协作的时候,比如两个人,A和B在同一个时点clone了代码,B先提交了commits,A后提交,在A push的时候Git就会报:

$ git push

To /tmp/Depot/public_html

! [rejected] master -> master (non-fast forward)

error: failed to push some refs to '/tmp/Depot/public_html'

这个时候就是 non-fast forward,简单的说就是Git不能简单地把A的提交添加到origin,因为B已经提交过,对于B提交的历史,这个时候Git不能自动判断是合并呢还是直接覆盖。大多数时候我们先要git pull,这个命令的意思是把远程的更新拉下来并且与本地的合并,如果有冲突就改掉冲突,这个时候会生成一个新的commit。如果没有冲突,那就是讲B提交的合并到A本地最新提交的一个commit,没有产生新的commit.然后提交就不会报错了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值