Eclipse里git提交冲突rejected – non-fast-forward

  Eclipse里commit代码,其实只是提交到本地仓库,需要push才会提交到远程的git仓库,这时是一个本地仓库到远程仓库的同步过程。Git是分布式的,每个人在本地仓库维护本地的自己的那一份代码,commit时只提交到本地仓库,不会影响到别人。当你push到远程仓库就可能发生冲突了。假如别人在你push前也push了同一个文件,那么问题就来了,冲突了,rejected – non-fast-forward出现了。

  解决方法一:每次本地修改代码前先从git仓库pull下想要提交的分支的最新代码,改完了commit并push到git仓库。这里有个前提,修改、commit和push期间没人动你修改的文件。

  解决方法二:期间文件在git仓库被改了,那么重新从git仓库获取最新的分支代码,然后把自己的修改放上去提交。

  解决方法三:通过merge来解决冲突。当出现rejected – non-fast-forward别慌,这时我们可以识别哪些文件有冲突,一个一个改,改好了再pull下最新代码,然后提交到远程仓库。

  下面具体说明下提交操作:

  1、单个文件提交:首先跟远程仓库做比较,右键修改的文件和目录->Team->Synchronized Workspace->确保没有冲突后再次右键修改的文件和目录->commit,在Git Staging里选中Unstaged Changes窗口里要提交的文件->Add to Index->在Commit Messge里写提交说明->Commit and Push->Next,注意这里不要选最下面的Force overwirte branch in remote if exists and have deverged,否则本地仓库会覆盖远程仓库,造成覆盖别人代码的严重后果->OK

 

  2、冲突解决:上面在Synchronized Workspace后出现冲突会有鲜艳的红色箭头出现,双击就可以看到哪个地方冲突了,一般是先把本地的改动保存好,从远程取下最新内容,再加上本地修改,最后提交。图示如下:

 

 

  上面本地文件改动了,远程文件新增了,所以冲突了,右键选中该文件,点击Merge:

 

 

  可以看到新的那一条自动复制到本地来了,接着右键点击Commit,输入提交说明,提交到本地仓库。此时再Pull最新远程git仓库里的代码到本地仓库(冲突不解决Pull会报错,Push报rejected – non-fast-forward),然后Push即可:

 

 

  注意不要点强推(上图红框),很容易覆盖代码。

posted on   不想下火车的人  阅读(61582)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示