zayzy
2021-12-29 16:48
采纳率: 94.3%
浏览 28

关于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条)

相关推荐 更多相似问题