Git rebase导致pull请求在自动合并中失败

Anu*_*dha 3 git github

我正在我的fork中使用分支B上的一个功能,我使用rebase策略将主分支更改为B.

今天我面临的情况是,在将主人变为B之后(上游没有对B进行任何更改),我不得不强行将这些更改推送到我的分支(这里正常推送失败了).

然后我创建了一个从我的B到Master repos B的拉取请求,其他开发人员也在这里工作,但是创建的拉取请求无法自动合并.

处理这类情况的最佳方法是什么?

Mak*_*oto 5

和你的同行交谈.

您刚刚重写了历史记录,因此我不希望您的远程分支能够自动合并.这也是你必须强行推动分支的原因.

这是场景.假设它master有3个新的变化.历史看起来像这样:

new3 *  * branchWork2
new2 *  * branchWork1
new1 * /
base *
Run Code Online (Sandbox Code Playgroud)

这样做git rebase master,你的历史现在是这样的:

branchwork2' *
branchwork1' *
new3         *
new2         * 
new1         * 
base         *
Run Code Online (Sandbox Code Playgroud)

你还没有失去任何工作从您的分支,但它们不是相同的承诺; 他们将生产不同的SHA.

通常情况下,如果没有人将他们的工作基于你的工作,这不会是一个问题,这通常是你想要针对一个公共分支重新设计你的工作的情况.如果有人,但是,现在他们已经和解,他们已经对做了哪些工作的老史与的历史,你推,它创建了一个头痛的问题.

在这种情况下,请确保与您的同行协调和交谈,以确保他们都了解情景并且处于足够好的位置,以便能够纠正任何错综复杂的合并冲突.