zayzy 2021-12-29 16:48 采纳率: 94.1%
浏览 58
已结题

关于git合并出现代码冲突的问题

1、什么情况下会出现代码冲突?
2、A开发人员修改a文件合并到master,B开发人员同样修改了a文件同一部分去合并到master,这时候会出现冲突,为什么不能理解为B修改了A的,而是出现冲突了呢?
3、代码覆盖是覆盖哪一部分?整个文件还是修改了的?

感谢回答!

  • 写回答

2条回答 默认 最新

  • kevinmartin 2021-12-29 17:08
    关注

    1、什么情况下会出现代码冲突?
    很明显,2个人或者多个人同时提交了代码,代码库不知道以谁的为准,这个时候就出现了代码冲突的情况;
    2、A开发人员修改a文件合并到master,B开发人员同样修改了a文件同一部分去合并到master,这时候会出现冲突,为什么不能理解为B修改了A的,而是出现冲突了呢?
    我们看一个时间线:A拉取了最新的代码,B拉取了最新的代码,A修改文件,B修改文件,A提交代码文件a到git,B提交文件a到git,A提交的时候正常,因为git不知道B也在修改;B提交的时候,因为B这个时候本地的版本是A提交之前的版本,这个时候git认为A和B在同时修改同一个文件,不能用B的覆盖A的,所以需要B手动merge,看B的改动在A的改动的基础上有什么变化。
    如果换一个case可能就没问题了:A拉取,B拉取,A修改,A提交,B拉取,B修改,B提交,这一套流程下来,就没有问题了。
    3、代码覆盖是覆盖哪一部分?整个文件还是修改了的?
    现在很多merge工具会比较智能的做merge,实在区分不出来的,才会提出来让人手工merge。但merge的时候也会给出几个option:1. 使用代码库的(others),2. 使用我自己的(local),3. 手工merge。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月29日

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法