自从我开始在 3 人团队中使用 git 已经一年了,这是我第一次不明白为什么 git 会惩罚我。
我有主分支开发。
2013 年 9 月,我从“开发”创建了分支“主题”并开始研究它。
2013 年 10 月,我从“develop”创建了分支“fixOct”并开始着手处理它。
在文件“wsCommesse.cs”上,我有函数 A、C、D。
在分支“主题”上,我向功能 D 添加了一些评论。
在分支“fixOct”上,我在函数 A 和 C 之间添加了一个冗长的函数 B;然后我修改了函数 D 中的许多行。
今天我尝试将“主题”与“fixOct”合并。我收到一个合并冲突警告我 git 不知道他是否必须添加函数 B(好的),但将所有更改的代码都扔到函数 D 中,保持在分支“主题”上编辑评论(灾难性)。
我搜索了有关为什么会发生这种情况的文档,尝试了不同的合并策略、耐心、日志记录、详细信息;git 认为函数 D 没有冲突,他只是觉得必须丢弃该代码。
保持它的唯一方法是使用“merge -s ours topics”,但这会扼杀合并智能。
他为什么不警告我有冲突?为什么他认为杀死更新鲜的代码是安全的?我怎样才能防止将来出现类似的问题,甚至增加更多的手工检查冲突?
我使用 bitbucket Web 界面附上了所发生情况的差异屏幕截图。红色表示通过合并删除的最新代码。绿色表示合并后保留的旧代码。
相同的代码,并排的差异
在此先感谢,法布里齐奥