2017-09-29 35 views
0

我刚刚尝试了以下these Atlassian Bitbucket instructions解决合并冲突,并发现它无法正常工作。Git合并指令不能按预期工作

如果遵循这些说明,那么有时在“开发”分支中的更改将覆盖“源分支”中所做的更改。

例如,在斯威夫特文件(注意,这是两个版本和行号都包括在内):

这是发展和Git是试图让这一个。

required init?(map: Map){ // 67 
    super.init()   // 68 
    mapping(map: map)  // 69 
    if origin == nil { // 70 
     origin = ""  // 71 
    }      // 72 
}       // 73 

这是源文件

required init?(map: Map){ // 67 
    super.init()   // 68 
    mapping(map: map)  // 69 
}       // 70 

正如你可以看到“源科”拥有的代码删除,但混帐认为这些线“发展”应该将它们添加回。 (对,如果我按照Atlassian的指示将开发合并到我的分支中)

这是不正确的,因为我的分支中的所有内容都应该尝试覆盖develop分支中的每个文件/更改,并在存在冲突时引发冲突一。

我要上菜还是这些说明不正确?

也可以有人建议使用我的分支作为全部和结束所有冲突解决?

(我觉得我需要有“发展”签出,然后在“特性分支”合并到这一点。获得这虽然跳过拉请求步骤的感觉......不想)

+0

不,我们不能“看到”的是什么已经从你呈现什么样删除每一个变化。要看到这一点,我们需要知道什么发生了变化,以及哪些分支正在合并到哪个分支中。唯一一次通常会发生合并冲突的是对相同或相邻代码行进行编辑的时间。 – crashmstr

+0

@crashmstr为了清晰起见,我添加了行号并将两个文件拆分为单独的代码块。 – user1567453

+0

您是否将'source'合并到'develop'中,并且这些文件和那些行*在'develop'中没有改变?另外,如果您要执行拉取请求,则不要手动合并这些请求。拉取请求将在批准后执行。 – crashmstr

回答

0

这是因为在源代码分支被分支并检出之后,开发分支对它做了“回复”。这给了开发分支在历史上更高的优先级,因此git会拒绝我的分支中的任何更改。 (所有20个文件,谁知道有多少行代码)

与同事说起来,事实证明,由于偶然融入起源/发展而完成了复原。

简单规则 - 如果其他开发人员有更改的分支,请勿使用“反向提交”。

做那^覆盖做其他开发当地的分支机构时,他们合并XD