Git合并无冲突原因咨询及需求预测模块分支代码保留方法
Git合并问题解答
一、为什么没触发预期的合并冲突?
Git判定合并冲突的核心是两个分支对同一文件的同一行(或连续相邻行块)做出了无法自动调和的修改。没触发冲突通常是这几种情况:
- 你在
demand_prediction_module分支的修改是基于最新master分支内容做的,Git能自动对齐差异完成合并 - 两个分支的修改逻辑被Git判定为“兼容”:比如
master分支删除了第4-7行的pass语句,而demand_prediction_module分支修改了这几行的其他代码,Git认为可以同时应用两个修改(删掉pass并保留你的代码) - 你在
demand_prediction_module分支新增的那次提交,和master分支的内容没有行级的冲突,Git自动合并逻辑判定可以安全完成合并
二、如何自主选择保留代码(优先demand_prediction_module分支版本)
情况1:已经完成合并,想回退重新选择
- 回退到合并前的
master状态:git reset --hard HEAD^ - 执行合并但不自动提交:
git merge --no-ff --no-commit demand_prediction_module - 直接编辑
dem_prediction_module.py,手动保留demand_prediction_module分支第4-7行的内容 - 提交修改:
git add dem_prediction_module.py && git commit -m "Merge demand_prediction_module, keep its version of lines 4-7"
情况2:还没合并,直接强制优先对方分支版本
执行这条命令,Git会在合并时优先采用demand_prediction_module分支的所有修改:
git merge --strategy-option theirs demand_prediction_module
更直接的方式:直接覆盖文件
如果不需要保留master分支该文件的任何修改,直接用demand_prediction_module分支的文件替换:
- 切换到
master分支:git checkout master - 替换文件:
git checkout demand_prediction_module -- dem_prediction_module.py - 提交修改:
git add dem_prediction_module.py && git commit -m "Replace dem_prediction_module.py with demand branch version"
三、关于你在demand_prediction_module分支的额外提交
这次提交会被纳入合并的比对范围,如果提交的内容和master分支出现了Git无法自动调和的行级差异,就会触发手动冲突解决流程,你就能直观看到差异并选择保留的版本;如果还是没有冲突,Git依然会自动完成合并。
内容的提问来源于stack exchange,提问作者Jose_Peeterson
相关产品推荐
相关产品推荐

