1.什么是冲突

  冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。读起来有点绕,结合下面的案例理解。

  从上面对冲突的定义来看,冲突时发生在同一个文件上的。

2.生产上冲突的场景

  常见冲突的生产场景如下

  1. 更新代码
  2. 提交代码
  3. 多个分支代码合并到一个分支时
  4. 多个分支向同一个远端分支推送代码时

  git的合并中产生冲突的具体情况:
  <1>两个开发者(分支中)修改了同一个文件(不管什么地方)
  <2>两个开发者(分支中)修改了同一个文件的名称
  注意:两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

  总结:上面各种情况的本质都是,当前文件与合并文件不一致,因此不论哪种情况其解决冲突的方法是一样的。

3.idea中解决冲突

  模拟场景:

  假设有另个开发人员开发同一个项目,并且编写同一个文件,工作流程如下:

  1.01号程序员先上传文件conflict.txt,并继续在conflict.txt上写代码;

  

  2.02号程序员更新项目代码,并在conflict.txt上写代码,写完后,在提交到远程服务端;

  

  3.当01号程序员把写完后,准备提交代码了,这时的正规操作手法,先更新在提交,但是在更新的时候必然会冲突,因为这时候更新的代码conflict.txt与本地仓库代码conflict.txt不一致

  

  提交前,我要更新,冲突了:

  

  解决方案如下:

  accept yours:代表以自己的为准;

  accept theris:代表以更新下来的文件为准;

  merge:代表手动合并

  一般解决冲突我们都是选择merge

  

  将需要的内容点击:">>"既可以合并内容到result中,不需要的内容点击“x”即可,合并完成后点击apply即可。

  值得注意的是,最将所有的“x >>”符号都要处理完,不需要的点击“x”,需要的点击“>>”

  最后,不论是什么场景下产生的冲突解决方法是一样的。

4.关于冲突的个人心得

  多人协作开发的时候,如果出现了你没有改过的文件跟你冲突了,一定要去找到当事者,说清楚是如何冲突的;

  然后协商解决,千万不要擅自拉别的分支去试图解决冲突,或找文件覆盖,更或者以自己的文件为准.

  同时记住,解决了之后,要add 和 commit 最后push.为保证万无一失,最后在冲突都解决之后,重启项目;

  保证至少不会有立即奔溃的现象发生.然后才去提交,push.

  提交的时候,一定要保持清醒,先搞清楚自己要提交的文件之间的关系,然后再提交,这样才不会有文件缺失的问题,造成奔溃.

  如果任务比较多,又开了多个分支,分别进行开发,再次强调,一定要清楚自己在各个分支上做了什么,自己要提交的是什么.最好是能做个详细的笔记,没有把握宁愿不要去提交到生产服务器.

  提交代码的时候不要走神,因为这是一个神圣的时刻!

git在idea中的冲突解决(非常重要)的更多相关文章

  1. git在idea中的冲突解决(非常重要)

    1.什么是冲突 冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致.读起来有点绕,结合下面的案例理解. 从上面对冲突的定义来看,冲突时发生在同一个文件上的. 2.生产上冲突的场景 常见冲突的 ...

  2. Git错误non-fast-forward后的冲突解决

    Git错误non-fast-forward后的冲突解决当要push代码到git时,出现提示: error:failed to push some refs to ... Dealing with “n ...

  3. Eclipse中Egit冲突解决

    Eclipse中Egit冲突解决 Git 作为进来最流行的分布式版本控制软件来说应用的十分广泛.EGit就是一款Eclipse上的Git插件.在使用Egit提交项目时,有时会产生冲突,需要对代码进行m ...

  4. git rebase 过程中遇到冲突该怎么解决?

    在执行git rebase 过程中经常遇到问题,此时有点慌,一般如何解决呢? 1.先将本地的冲突手动解决 2.执行下面命令 git add . git rebase --contine  //继续re ...

  5. Git应用—03分支管理和冲突解决(转载)

    Git 分支管理和冲突解决 https://www.cnblogs.com/mengdd/p/3585038.html 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. ...

  6. git分支的合并和冲突解决【转】

    本文转载自:http://blog.csdn.net/Kingson_Wu/article/details/39227611 http://gitbook.liuhui998.com/3_3.html ...

  7. .Net中DLL冲突解决(真假美猴王)

    <西游记>中真假美猴王让人着实难以区分,但是我们熟知了其中的细节也不难把他们剥去表象分别出来.对问题不太关心的可以直接调到文中关于.Net文件版本的介绍 问题 最近在编译AKKA.net ...

  8. Git合并分支出现的冲突解决

    人生不如意之事十有八九,合并分支往往也不是一帆风顺的. 我们准备新的分支newbranch. LV@LV-PC MINGW32 /c/gitskill (master)$ git checkout - ...

  9. maven中jar冲突解决

    Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲 ...

  10. Git错误non-fast-forward后的冲突解决(转载)

    文章转载自:http://blog.csdn.net/chain2012/article/details/7476493 当要push代码到git时,出现提示: error:failed to pus ...

随机推荐

  1. 【ZeroMQ】zguide 第一章 部分翻译

    为了更好的阅读体验,请点击这里 本文大部分内容翻译自 Chapter 1 - Basics,原因是之前翻译的版本太老了,不得不亲自披挂上阵拿机器翻译一下.只截取了部分自己可能用得到的,所以如果有看不太 ...

  2. 流程图渲染方式:Canvas vs SVG

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霁明 背景 我们产品中会有一些流程图应用,例如审批中心的审 ...

  3. power bi 如何删除敏感度标签

    经验证,此方法不够彻底,我的office excel打开后还是要添加敏感度标签,即使我把敏感度标签删掉也不行. 当我把创建敏感度标签的管理员账户删掉之后,虽然打开excel还是会显示敏感度标签,但是已 ...

  4. ABP框架开发实例教程-获取前端样式和脚本

    1.运行生成的ABP框架,设置WEB.MVC项目为启动项目,点击开始运行,界面如下,样式和脚本文件不存在,所以导致界面无法正常显示,这个我研究ABP遇到的第二个坑,第一个坑是生成数据库. 2.为什么没 ...

  5. 浏览器中JS的执行

    JS是在浏览器中运行的,浏览器为了运行JS, 必须要编译或解释JS,因为JS是高级语言,计算机不认识,必须把它编译或解释成机器语言,其次,在运行JS的过程,浏览器还要创建堆栈,因为程序是在栈中执行,执 ...

  6. python实用总结

    Python3 常用工具 1. 命令行快速搭建本地http服务器 python3 -m http.server 8000 在命令行中输入此命令,就会在当前目录下搭建http服务器,可以通过访问http ...

  7. SpringBoot连接数据库的方式

    1.Spring集成的服务 直接通过注入方式使用,如redis,jdbc等等服务. spring: redis: host: localhost port: 6379 password: 123456 ...

  8. Redis缓存雪崩,击穿,穿透以及解决方案

    Redis读写过程 一般情况下,Redis都是作为client与MySQL间的一层缓存,尽量减少MySQL的读压力,数据流向如图所示: Redis的五种数据类型及使用场景 String 这个其实没啥好 ...

  9. oracle 实现任务编码自增

    业务需求:任务编号前面4位数(通过查询其他表,值不确定),后面5位数实现自增 实现方法如下 1.创建序列 1 create sequence GENERAL_DES_TASK_SEQ_1 2 incr ...

  10. yb课堂 ECMAScript 6常见语法快速入门 《三十一》

    什么是ES 6 ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015).它的目标是使用JavaScri ...