开发者社区> libin9iOak> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Fatal Not possible to fast-forward, aborting

简介: git是一个很好用的版本管理工具,然而,有时候一些冲突还是让人很郁闷的。 遇到过两次merge报错,是在不同的情形下出现的。
+关注继续查看

git是一个很好用的版本管理工具,然而,有时候一些冲突还是让人很郁闷的。

遇到过两次merge报错,是在不同的情形下出现的。

  • 本地分支各自commit之后,merge
  • 本地master分支 pull 远程master分支

下面记录以下两种情况的处理。


情形1:


我在本地仓库的两条分支devmaster同时开发,各自经过2个提交之后,merge报错:


fatal: Not possible to fast-forward, aborting.


如果git环境是中文的,那么这个错误信息就是这样的:


fatal:无法快进,终止。


问题的原因:

两个分之同时改了同样的地方,造成冲突。

按理,这种冲突也可以直接运行merge,然后手动解决这些冲突,再commit就行了。

然而,这次不行。

那就使用另一种合并分支的办法:rebase,我的目的是将dev合并到master,然后删除dev


git checkout master
git rebase dev


这时候报以下错误:


First, rewinding head to replay your work on top of it...
Applying: text:I am on master
Using index info to reconstruct a base tree...
M   a.txt
Falling back to patching base and 3-way merge...
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
error: Failed to merge in the changes.
Patch failed at 0001 text:I am on master
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".


这时候需要手动去修改冲突的地方:


<<<<<<< HEAD
I am on dev

I am on my mark.
=======
I am on master
>>>>>>> text:I am on master


然后,根据上面报错的提示信息,continue


When you have resolved this problem, run "git rebase --continue".
git rebase --continue 

a.txt: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add


根据提示,add之后,再看下状态:


git add .
git status

rebase in progress; onto 6114f0b
You are currently rebasing branch 'master' on '6114f0b'.
  (all conflicts fixed: run "git rebase --continue")

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   a.txt


已经提示冲突都已经解决,可以继续了:


git rebase --continue

Applying: text:I am on master
Applying: commit 2nd
Using index info to reconstruct a base tree...
M   a.txt
Falling back to patching base and 3-way merge...
Auto-merging a.txt

这时候dev分支已经完全合并到了master分支上了:


git status

On branch master
nothing to commit, working tree clean


情形2:


其实处理方式跟情形1是一样的,只是稍有不同。


git pull origin master

From https://gitee.com/leonxtp/xxxxx
 * branch            master     -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.


这时候直接应用rebase解决:

git pull origin master --rebase

First, rewinding head to replay your work on top of it...
Applying: xxxxxx
Using index info to reconstruct a base tree...
M       gradle.properties
Falling back to patching base and 3-way merge...
Auto-merging path/of/file...
Auto-merging path/of/file...
Applying: yyyyyyy
...


关于merge和rebase的区别,可以参考:这篇文章。

个人总结起来就是:


merge不影响原来的commit,并会新增一个合并的commit。

rebase是将目标分支插入到两个分支的共同祖先与当前分支的最后面(不是最新)之间,并且修改当前分支原来的commit,但不会增加新的commit。

问题解决参考SOF。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
联合 CNCF 共同出品:Kubernetes and Cloud Native Meetup 成都站
亮点解读 云原生前沿技术分享:阿里经济体“云原生化”宝贵经验与最佳实践成果 OpenKruise 价值几何? 防踩坑指南:国内知名容器平台架构师解读从 ECS 迁移到 K8S 走过哪些坑。 ​云原生服务坚定基石:Kata Container 在蚂蚁生产中的云原生核心价值。
2563 0
"Massive sales… just for you!" - The Art of Personalized Marketing
The world of retail is going through a transformation. In the past, retailers would employ mass marketing campaigns to attract customers. But in the
1469 0
关于&quot;net::ERR_CONNECTION_ABORTED&quot;和&quot;Firebug 达到了 Post 请求大小限制&quot;的问题
1、其中"net::ERR_CONNECTION_ABORTED"是在Chrome的控制台中打印出来的。 2、"Firebug 达到了 Post 请求大小限制" 是 在火狐的Firebug请求消息头中显示出来的。 原因:在做POST提交的时候,提交的内容大小超过2M,导致出现上面的问题。解决办法修改tomcat中的POST请求最大数据量的限制。 修改的文件是:server.xml 修改的内容如
1992 0
转载:Create a Flash Login System Using PHP and MySQL
本文共两部分: 1. http://dev.tutsplus.com/tutorials/create-a-flash-login-system-using-php-and-mysql-part-1--active-5147 2.
516 0
ztree插件(JQuery Tree)
本次使用的ztree插件,基本上所有的需求都能满足,可谓功能强大。    * [http://www.ztree.me/v3/api.php zTree v3.0 API 文档]   * [http://www.
1348 0
ASM REACTING TO PARTITION ERRORS [ID 1062954.1]
  ASM REACTING TO PARTITION ERRORS [ID 1062954.1] ----------------------------------------------------------------------...
848 0
三种web性能压力测试工具http_load webbench ab小结
题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种http_load下载地址:http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz程序非常小,解压后也不到100K 居家旅行 携带方便 呵呵http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。
942 0
+关注
322
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载