Git 合并指令未按预期工作
Git Merge Instructions not Work as Expected
我刚刚尝试按照 these Atlassian Bitbucket instructions 解决合并冲突,但发现它无法正常工作。
如果遵循这些说明,有时 "develop" 分支中的更改会覆盖 "source branch" 中所做的更改。
例如在 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
如您所见,"source branch" 删除了这些代码行,但 git 认为 "develop" 应该重新添加它们。 (正确的是,如果我告诉 develop 按照 Atlassian 说明合并到我的分支)
这是不正确的,因为我的分支中的所有内容都应该尝试覆盖开发分支中的每个 file/change 并在存在冲突时引发冲突。
我是菜鸟还是这些说明不正确?
还有人可以建议使用我的分支作为一切的冲突解决方案吗?
(我认为我需要检查 "develop" 然后将 "feature branch" 合并到其中。感觉这跳过了拉取请求步骤......不想要)
这是因为开发分支在源分支被分支并签出后对其进行了 "reversion" 操作。这使 develop 分支在历史上具有更高的优先级,因此 git 将拒绝我的分支中的任何更改。 (全部20个文件,谁知道有多少行代码)
与同事交谈后发现,由于意外合并到 origin/develop。
简单规则 - 如果其他开发人员有更改的分支,请不要使用 "reverse commit to"。
这样做^会覆盖在其他开发人员合并 XD 时对本地分支所做的每一个更改
我刚刚尝试按照 these Atlassian Bitbucket instructions 解决合并冲突,但发现它无法正常工作。
如果遵循这些说明,有时 "develop" 分支中的更改会覆盖 "source branch" 中所做的更改。
例如在 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
如您所见,"source branch" 删除了这些代码行,但 git 认为 "develop" 应该重新添加它们。 (正确的是,如果我告诉 develop 按照 Atlassian 说明合并到我的分支)
这是不正确的,因为我的分支中的所有内容都应该尝试覆盖开发分支中的每个 file/change 并在存在冲突时引发冲突。
我是菜鸟还是这些说明不正确?
还有人可以建议使用我的分支作为一切的冲突解决方案吗?
(我认为我需要检查 "develop" 然后将 "feature branch" 合并到其中。感觉这跳过了拉取请求步骤......不想要)
这是因为开发分支在源分支被分支并签出后对其进行了 "reversion" 操作。这使 develop 分支在历史上具有更高的优先级,因此 git 将拒绝我的分支中的任何更改。 (全部20个文件,谁知道有多少行代码)
与同事交谈后发现,由于意外合并到 origin/develop。
简单规则 - 如果其他开发人员有更改的分支,请不要使用 "reverse commit to"。
这样做^会覆盖在其他开发人员合并 XD 时对本地分支所做的每一个更改