博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git错误non-fast-forward后的冲突解决
阅读量:6815 次
发布时间:2019-06-26

本文共 1949 字,大约阅读时间需要 6 分钟。

hot3.png

当要push代码到git时,出现提示:

error:failed to push some refs to ...

Dealing with “non-fast-forward” errors

From time to time you may encounter this error while pushing:

  1. $ git push origin master  

  2. To ../remote/  

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

  4. error: failed to push some refs to '../remote/'  

To prevent you from losing history, non-fast-forward updates were rejected

Merge the remote changes before pushing again.  See the 'non-fast forward'
section of 'git push --help' for details.
This error can be a bit overwhelming at first, do not fear. Simply put, git cannot make the change on the remote without losing commits, so it refuses the push. Usually this is caused by another user pushing to the same branch. You can remedy this by fetching and merging the remote branch, or using pull to perform both at once.
In other cases this error is a result of destructive changes made locally by using commands like git commit --amend or git rebase. While you can override the remote by adding --force to the push command, you should only do so if you are absolutely certain this is what you want to do. Force-pushes can cause issues for other users that have fetched the remote branch, and is considered bad practice. When in doubt, don’t force-push.

问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

git push -f

2,先把git的东西fetch到你本地然后merge后再push

$ git fetch

$ git merge

这2句命令等价于

  1. $ git pull  

可是,这时候又出现了如下的问题:

上面出现的 [branch "master"]是需要明确(.git/config)如下的内容

[branch "master"]
    remote = origin

    merge = refs/heads/master

这等于告诉git2件事:

1,当你处于master branch, 默认的remote就是origin。

2,当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变

如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:

  1. $ git config branch.master.remote origin  

  2. $ git config branch.master.merge refs/heads/master  

之后再重新git pull下。最后git push你的代码吧。it works now~

转载于:https://my.oschina.net/u/2361492/blog/527953

你可能感兴趣的文章
构建基于Nginx的web服务器
查看>>
5 Servlet
查看>>
百度创始人李彦宏:要做最好的中文搜索引擎
查看>>
3.26作业
查看>>
Python里的append和extend
查看>>
cut命令
查看>>
JavaScript强化教程-cookie对象
查看>>
MEMCACHE常用的命令
查看>>
docker 基础
查看>>
Angular基础(七) HTTP & Routing
查看>>
使用Freeline提高你的工作效率
查看>>
FTP服务器
查看>>
爬百度新闻
查看>>
上网行为管理设备网关部署方式
查看>>
TCP协议与UDP协议的区别
查看>>
MySQL 忘记root密码解决办法
查看>>
路由器的4种配置模式
查看>>
时空大数据可视化之湖泊可视化简介(Lake Level Viewer)
查看>>
The reference to entity "characterEncoding" must end with the ';' delimiter
查看>>
意大利石油和天然气服务公司Saipem称遭到了来自印度的网络***
查看>>