第二个开发人员和我正在共同开发一个功能分支。我们希望使用在主分支中进行的更改来测试此功能。通常情况下,我可能会使用git rebase master
,但由于某些原因,这不会起作用。
所以我想将master合并到我的功能分支中以获取更改。但是,当我合并时,对主服务器所做的具体更改显示为“已提交更改”#39;。我想,当我提出拉动请求将这些变化置于掌握中时,由于其他民族的噪音,它将使审查变化变得混乱和难以遵循。变化。
使用git merge
时,使用MongoClient.connect(url, (err, database) => {
if (err) return console.log(err)
db = database
})
更改功能更改功能分支的正确方法是什么,而不会使具有无关更改和重复提交的拉取请求混乱?
我一直在寻找并且无法找到这个问题的好答案,因为大多数人都建议改变。 This似乎是最接近的,但其接受的答案有-1票,而其他人实际上并没有回答这个问题。
答案 0 :(得分:1)
您将两个不同的东西混为一谈:分阶段进行更改(要提交的更改),另一方面提取请求更改集。
拉取请求不是一个git概念,因此它们计算更改集的程度取决于实现它们的主机服务。如果拉取请求以合理的方式计算其变更集,则不应出现您所描述的问题。在git级别,当从branch
发送到master
的拉取请求时,您希望将更改计算为master..branch
- 这会排除master
次提交合并后出于完全相同的原因,它排除了创建master
时已经存在的branch
提交。我相信 github正确处理这个问题。
但至于问题的另一面:假设您不希望更改显示为"更改以检入" - 或者这与拉取请求审核的外观密切相关 - 是错误的。为了使合并提交正确地合并来自master的更改,它们必须在索引中表示,这使得它们可以提交更改"。
唯一的办法是根本不提交合并。有些人建议(出于类似的原因,为什么有些人建议不断的rebase操作)。我不同意这个建议(出于类似的原因,为什么我不同意不断变换操作的建议)。
如果您决定不保留合并,则可以使用git rerere
缓解(但不能消除)该决定的某些缺点,这有助于重新应用可能引发的任何冲突解决方案当您放弃合并时。