如何防止合并更改显示为“已提交的更改”#39;

时间:2017-12-14 16:17:50

标签: git github merge rebase

第二个开发人员和我正在共同开发一个功能分支。我们希望使用在主分支中进行的更改来测试此功能。通常情况下,我可能会使用git rebase master,但由于某些原因,这不会起作用。

  • 已将更改推送到远程并与其他开发人员共享。
  • 与主人发生合并冲突会使重新定位变得复杂和危险。

所以我想将master合并到我的功能分支中以获取更改。但是,当我合并时,对主服务器所做的具体更改显示为“已提交更改”#39;。我想,当我提出拉动请求将这些变化置于掌握中时,由于其他民族的噪音,它将使审查变化变得混乱和难以遵循。变化。

使用git merge时,使用MongoClient.connect(url, (err, database) => { if (err) return console.log(err) db = database }) 更改功能更改功能分支的正确方法是什么,而不会使具有无关更改和重复提交的拉取请求混乱?

我一直在寻找并且无法找到这个问题的好答案,因为大多数人都建议改变。 This似乎是最接近的,但其接受的答案有-1票,而其他人实际上并没有回答这个问题。

1 个答案:

答案 0 :(得分:1)

您将两个不同的东西混为一谈:分阶段进行更改(要提交的更改),另一方面提取请求更改集。

拉取请求不是一个git概念,因此它们计算更改集的程度取决于实现它们的主机服务。如果拉取请求以合理的方式计算其变更集,则不应出现您所描述的问题。在git级别,当从branch发送到master的拉取请求时,您希望将更改计算为master..branch - 这会排除master次提交合并后出于完全相同的原因,它排除了创建master时已经存在的branch提交。我相信 github正确处理这个问题。

但至于问题的另一面:假设您不希望更改显示为"更改以检入" - 或者这与拉取请求审核的外观密切相关 - 是错误的。为了使合并提交正确地合并来自master的更改,它们必须在索引中表示,这使得它们可以提交更改"。

唯一的办法是根本不提交合并。有些人建议(出于类似的原因,为什么有些人建议不断的rebase操作)。我不同意这个建议(出于类似的原因,为什么我不同意不断变换操作的建议)。

如果您决定不保留合并,则可以使用git rerere缓解(但不能消除)该决定的某些缺点,这有助于重新应用可能引发的任何冲突解决方案当您放弃合并时。