master -> master (non-fast-forward) 问题解决

这篇具有很好参考价值的文章主要介绍了master -> master (non-fast-forward) 问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、问题描述
当要push代码到git时,出现提示:

$ git push origin master
To ../remote/
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '../remote/'

master -> master (non-fast-forward) 问题解决,git,github

2、分析问题
 

因为技术的发展和经验的积累,现在的git的功能也越来越完善,它不仅提示出错(具体原因),还会给出一些建设性意见,以供你参考。

我们知道git的一大好处就是可以团队合作开发,但是这就涉及到一个问题,怎么保证远程仓库的一致性?这也是它不得不处理的一个重要问题!

我们可以这样理解这个问题就是:别人上传到远程仓库后,你没有及时的同步(、拉取)到本地,但是你同时又添加了一些内容(提交),以致于你在提交时,它会检测到你之前从远程仓库拉取的时候的仓库状态和现在的不一样。于是,它为了安全起见拒绝了你的提交(然后就报了这个错误)。

 再者我们可以简单来理解这个问题:我们从字面上理解“non-fast-forward”,可以认为是“不能快速前进”,我觉得有个广告说得好:车到山前必有路……但是路有好走的路,也有不好走的路;而遇到不好走的路时(比如前方遇到拦路石,或者是前方出现岔路),我们就不得不停下来思考“以后的路该怎么走”了,我们“不仅要低头赶路,也要抬头看路”就是这个意思。

“不能快速前进”的原因是因为路不一样了,变得不好走了;体现在git里面就是提交历史出现分叉,主线不再是一条直线,而是在前端出现了分叉,git不知道该如何前进,所以报错了,让你来觉得走哪条路!

3、解决问题
于是你有2个选择方式:

3.1、先合并之前的历史,再进行提交——提倡使用
(1)先把git的东西fetch到你本地然后merge后再push

$ git fetch origin master

$ git merge origin FETCH_HEAD 

先抓取远程仓库的更新到本地,然后与你的本地仓库合并,(如果有冲突就要解决冲突后再合并,冲突问题比较复杂,这里就不详细说了),这样就可以使远程仓库和你本地仓库一致了,然后就可以提交修改了。

(2)这2句命令等价于
$ git pull origin master

但是使用git fetch + git merge 更加安全。

(3)git pull --rebase origin master

重定基,可以是历史更加统一,即使提交历史趋向于一条直线。

补充:他们之间的关系

git pull = git fetch + git merge FETCH_HEAD 

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

3.2、丢弃之前的历史,强推——谨慎使用
强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

$ git push -f  或者 $ git push --force

官方文档提示:This flag disables these checks, and can cause the remote repository to lose commits; use it with care.(即:此标志禁用这些检查,并可能导致远程存储库丢失提交;小心使用。)

俗话说得好:“强扭的瓜不甜”,强制(暴力)执行总会产生一些不好的结果,应慎重考虑是否使用该命令!!!

不仅在此处,在平时使用时,也要非常注意,除非你真的是想覆盖远程仓库(你真的知道自己在干嘛!),不然最好不要强制执行。
 

使用图形化工具是最好处理的:sourcetree等等文章来源地址https://www.toymoban.com/news/detail-720022.html

到了这里,关于master -> master (non-fast-forward) 问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git错误non-fast-forward的解决方法

    1、问题描述 当要push代码到git时,出现提示: $ git push origin master To ../remote/  ! [rejected]        master - master (non-fast-forward) error: failed to push some refs to \\\'../remote/\\\' 2、分析问题 Dealing with “non-fast-forward” errors:(From time to time you may encounter this error while pushing)     To prevent you

    2024年02月04日
    浏览(38)
  • git push报错:![rejected] master -> master(non-fast-forward) error:failed to push some refs to XXX

    背景 本地git库,要push到gitlab上,执行完如下命令后报错: 报错信息为: 原因 从本地代码创建远程仓库的时候,添加了README.md,但本地仓库中并没有该文件。 解决方案 添加忽略不相干的历史选项,将远程仓库中的文件重新拉取到本地,这样本地文件会出现README.md: 之后再

    2024年02月04日
    浏览(49)
  • git push 到gitlib提示! [rejected] master -> master (non-fast-forward) error: failed to push some refs t

    一、git push到gitlab提示,大概意思是本地库和远程库没有同步导致无法提交合并,冲突导致无法push。 二、解决方案 三、操作界面,可以push到gitlab了。 三、參考文章 https://www.cnblogs.com/wml-it/p/15585052.html

    2024年02月06日
    浏览(44)
  • git基础: (fetch first)和(non-fast-forward)问题详解

    当在本地main分支上向远程main仓库push时发生如下问题 To github.com:ReturnTmp/study.git  ! [rejected]        main - main (fetch first) error: failed to push some refs to \\\'github.com:ReturnTmp/study.git\\\' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repos

    2024年02月11日
    浏览(35)
  • ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to

    产生场景 创建仓库上传代码时,发现git的一个报错,意思是本地和远程不太一样(第一次提交)。 原因是我们在创建仓库是创建了模板和.git忽略文件,这样使得远程和本地内容不太一样。 我们只要在正常上传仓库流程push之前把远程仓库内容拉取到本地来。 解决方案 总结:

    2024年02月16日
    浏览(42)
  • git push报错 ! [rejected] dev -> dev (non-fast-forward)

    问题 git push 进行代码提交时报错 ! [rejected] dev -> dev (non-fast-forward) 原因 是本地库和远程库没有同步导致无法提交合并,冲突导致无法push 解决办法 情况一:第一次提交,远程喝本地分支没有关联,在原有命令后加 --allow-unrelated-histories 情况二:已经进行git操作,有了关联的

    2024年02月15日
    浏览(44)
  • Git pull报 fatal: Not possible to fast-forward, aborting的解决办法

    1. 问题场景 本人使用公司的开发机Mac, 发现在Mac 机上pull代码时总会出现“fatal: Not possible to fast-forward, aborting”。 开发流程:基于release拉取一个feature分支,然后在feature分支上进行开发,再把feature分支往master合并,如果有冲突先git pull 一下,然后解决冲突进行push。  (rele

    2023年04月08日
    浏览(29)
  • Git常见问题记录:git出现“Your branch and ‘origin/master‘ have diverged”的解决方法【详细解释】

    说明您的本地子分支和master主分支已经分叉, 有冲突 产生! 如果 不需要保留 本地的修改,只要执行下面两步: 命令解析: git fetch :命令用于从远程获取 master 主分支的最新代码库,并没有合并的操作; git reset --hard :命令用于把本地分支代码,强制回退为 master 主分支的

    2024年04月16日
    浏览(41)
  • 解决git无法连接gitHub问题

    事情的起因 我在使用git push我的项目时出现下面问题 fatal: unable to access ‘https://github.com/xxx.git/’: Recv failure: Connection was reset 或者 fatal: unable to access ‘https://github.com/xxx.git/’: Failed to connect to github.com port 443 after 21090 ms: Couldn’t connect to server 翻译过来就是无法连接到github 分析

    2024年02月03日
    浏览(38)
  • git无法使用git协议clone github仓库问题解决

    提示错误: 首先登录github账号,检查本机的 ~/.ssh/id_rsa.pub 是否添加到github账号 https://github.com/settings/keys 如果没有添加,需要先添加本机的ssh公钥到github 然后再重试 git clone  如果依然报错,需要检查 ~/.ssh/known_hosts  ,找到github.com开头的行,然后删除 再次重试 git clone 此时提示需要

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包