Git Merge说明无法按预期工作

时间:2017-09-29 19:10:45

标签: git bitbucket atlassian-sourcetree

我刚刚尝试使用these Atlassian Bitbucket instructions来解决合并冲突,并发现它无法正常工作。

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

例如在Swift文件中(注意这些是两个版本并且包含行号):

这是开发,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

正如你所看到的那样,“源分支”删除了这些代码行,但是git认为“develop”应该再次添加它们。 (如果我按照Atlassian的说明开发合并到我的分支中,那就正确了)

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

我要去菜或这些说明不正确吗?

也可以有人建议使用我的分支作为所有并且结束所有的冲突解决方案吗?

(我认为我需要签出“开发”,然后将“功能分支”合并到其中。感觉这会跳过拉取请求步骤但是......不想要)

1 个答案:

答案 0 :(得分:0)

这是因为在源分支已经分支并检出之后,开发分支对其进行了“回复”。这使得开发分支在历史上具有更高的优先级,因此git将拒绝我的分支中的任何更改。 (所有20个文件,谁知道代码行数)

与一位同事谈话后发现,由于意外合并到原点/开发中而进行了回归。

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

这样做^会覆盖在合并XD时对其他开发人员本地分支所做的每一次更改