Git pull报 fatal: Not possible to fast-forward, aborting的解决办法

这篇具有很好参考价值的文章主要介绍了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。 

(release是master的子集)

上述流程在windows上运行很流畅但是到mac上就不行,在stackoverflow的大佬说是因为base不一致,需要使用rebase去解决,百度上也是这么描述的。虽然这种方式帮助很多人解决了问题,但绝不是我所想要的解决方式。因为我想使用git pull后即使有冲突而不是以这样的方式显示。

2.问题解决

合并代码的方式有很多中:git merge,git rebase,git pull等

git 在处理文件merge时,会分成三种处理方式

  • –ff–only fast forward模式,快速合并 有冲突就会失败
  • –no–ff 非快速合并 会生成一次commit
  • –squash 将合并后的不同分支所有的提交记录作为一次提交

fase-forward只要存在冲突就会失败, 我们得配置git pull

  • git config pull.rebase false —- 关闭 rebase

  • git config pull.rebase true —–开启rebase

  • git config pull.ff only/false —–开启/关闭 fast-forward

 上述命令是针对当前分支的,如果使用全局配置的请加上--global, 如下

  • git config --global pull.rebase false —– 全局关闭 rebase

  • git config --global pull.rebase true —– 全局开启rebase

  • git config --global pull.ff only/false —– 全局开启/关闭 fast-forward

其实我们要做的是关闭rebase和fast-forward在pull中的表现,可运行如下代码解决当前分支问题:

git config pull.rebase false

git config pull.ff false

可运行如下代码解决全局问题:

git config --global pull.rebase false

git config --global --add pull.ff false

还有另外一种解决方式,感觉不是很科学,好像也能解决问题。如下:

git pull {branchName} –no-rebase eg: git pull origin release –no-rebase

实际上不仅是pull可以配置,merge也是可以使用同样的方式进行配置

最后提供一张图,简单易懂讲述了git 的rebase操作(由于当时截图,忘记拷贝链接了)

Git pull报 fatal: Not possible to fast-forward, aborting的解决办法

这里纠正一下,rebase后X,Y,Z均会产生新的commit。

最后根据小编的经历,建议大家不要使用rebase去合并代码。使用git pull/git merge/git fetch即可。文章来源地址https://www.toymoban.com/news/detail-403946.html

到了这里,关于Git pull报 fatal: Not possible to fast-forward, aborting的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 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日
    浏览(69)
  • git pull 提示错误 fatal: refusing to merge unrelated histories

    从远程拉项目到本地的时候提示错误 造成 fatal: refusing to merge unrelated histories错误的原因有以下几点: 有一个包含一些提交的新 Git 存储库。然后,您尝试从现有的远程仓库中提取。合并变得不兼容,因为分支和远程拉取的历史不同。当你试图合并两个完全不相关的分支时,

    2024年02月11日
    浏览(41)
  • 【Git】pull 分支报错 fatal: Need to specify how to reconcile divergent branches...

    示例代码: 翻译: 分析:这是由于你拉取pull分支前,进行过merge合并更新分支操作,而其他人在你之前已经push过一个版本,导致版本不一致 第一种解决方法:比较简单 执行 git config pull.rebase false 默认将pull下来的代码与现有改动的代码进行合并 但是可能会造成代码冲突,需

    2024年02月03日
    浏览(57)
  • 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日
    浏览(56)
  • 【Git】git pull 报错 fatal: not a git repository (or any of the parent directories): .git

    在使用 git pull 拉取仓库时报错,错误信息如下图所示: 这个错误表明当前目录不是一个 Git 仓库,因此无法执行 git pull 命令。 错误提示中指出当前目录不是一个 Git 仓库,因此无法执行 git pull 命令。这可能是因为在一个不是 Git 仓库的目录中使用了 Git 命令。 使用 git init 命

    2024年02月04日
    浏览(42)
  • git pull出现fatal: unable to access ‘https://github.com/xxx.git‘: Failed to connect to github.com port

    问题 执行git命令:git pull origin main; 出现:fatal: unable to access ‘https://github.com/xxx.git’: Failed to connect to github.com port 443 after xxx ms: Timed out。 解决方法 手动配置Git代理: 1.打开ShadowsocksR软件; 2.右键ShadowsocksR图标,点击《选项设置》,查看本地端口,我的是1080; 2.执行 git c

    2024年02月13日
    浏览(60)
  • 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日
    浏览(49)
  • git 报错:! [rejected] master -> master (non-fast-forward)

    当提交代码时出现如下错误:  non-fast-forward:译为‘不能快速前进’,远程仓库更新了,你没有及时同步到本地,提交的时候添加了新的内容,提交的时候,然后检测到远程和本地不一样。为了安全起见,报了这个错误。 可以先合并之前的历史,在进行提交 1. 先把git的东西

    2024年02月08日
    浏览(55)
  • git报错:[rejected]master->master(non-fast-forward)

    今天新建了一个仓库,并未push代码,然后按提交代码的流程提交项目时,报错 经过百度后发现原因是仓库中有readme文件,而项目中没有,内容不同步造成的,但是我明明执行过下面命令拉取过代码。 后来查百度又执行下面语句后成功在本地同步了readme文件 之后再次提交,还

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

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

    2024年02月16日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包