git push错误 fail to push some refs——no fast forward

转自:http://blog.csdn.net/trochiluses/article/details/9037183

概述:为了在不同地方,不同人员之间进行协同编辑,同时能够进行统一管理,我们可以把代码托管到github的服务器上。

1.第一步:新建一个github账户


2.第二步:在账户中新建一个仓库


3.第三步:在本地新建一个仓库

git init

git add .

git commit -m


4.第四步:在本地新建远程仓库与分支

git remote add origin git@github.com:testthinguser/iphone_project.git

vim .git/config

  1 [core]
  2         repositoryformatversion = 0
  3         filemode = true
  4         bare = false
  5         logallrefupdates = true
  6 [remote "origin"]
  7         url = https://github.com/huangyukun2012/linux-2.4.21.git
  8         fetch = +refs/heads/*:refs/remotes/origin/*
  9 [branch "master"]
 10         remote=origin
 11         merge = refs/heads/master


 

注意,remote "origin"表示远程分支的信息,branch master 表示本地分支的信息,其中remote参数表示要提交到的远程分支,merge 是默认的merge对象


5.第五步:利用git进行推送

git push origin master

此时,容易出现以下no fast forward错误:



出错原因:

多人协同开发,使用Git经常会看到警告信息包含术语:fast forward, 这是何义?

简单来说就是提交到远程中心仓库的代码必须是按照时间顺序的。

比如A从中心仓库拿到代码后,对文件f进行了修改。然后push到中心仓库。

B在A之前就拿到了中心仓库的代码,在A push成功之后也对f文件进行了修改。这个时候B也运行push命令推送代码。

会收到一个类似上面的信息:

提醒你非快进方式的更新被拒绝了,需要先从中心仓库pull到最新版本,merge后再push.

fast forward能够保证不会强制覆盖别人的代码,确保了多人协同开发。尽量不要使用non fast forward方法提交代码。


解决方法:

先执行git pull

然后执行 git add  .

然后git commit

最后git push origin master

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值