我正在使用fork中的分支B上的一个功能,我使用rebase策略将主分支更改为B.
今天我面临的情况是,在将主人变为B之后(上游没有对B进行任何更改),我不得不强行将这些更改推送到我的分支(这里正常推送失败了)。
然后我创建了一个从我的B到Master repos B的拉取请求,其他开发人员也在这里工作,但创建的拉取请求无法自动合并。
处理这类情况的最佳方法是什么?
答案 0 :(得分:5)
与同行交流。
您刚刚重写了历史记录,因此我不希望您的远程分支能够自动合并。这也是你必须强行推动分支的原因。
这是场景。假设master
有3个新变化。历史看起来像这样:
new3 * * branchWork2
new2 * * branchWork1
new1 * /
base *
执行git rebase master
后,您的历史就是这样:
branchwork2' *
branchwork1' *
new3 *
new2 *
new1 *
base *
你没有丢失任何来自你的分支的工作,但他们并非完全相同的提交;他们将生产不同的SHA。
通常情况下,如果没有人将他们的工作从你的工作中解决,这将不会成为一个问题,如果您希望根据公共分支重新设计您的工作,那么通常该方案。但是,如果某人拥有,那么现在他们必须将他们对旧历史记录所做的工作与新历史记录进行协调推,这会引起头痛。
在这种情况下,请确保与您的同行协调并进行交流,以确保他们都了解情景并且处于足够好的位置,以便能够纠正任何错综复杂的合并冲突。