希望这不会重复别人的问题。我知道有很多关于变基的话题,但是当在野外有两个同一个分支的副本时,我试着解决它是如何工作的。
情境:
A人正在开发一项新功能......
(master) M1 -- M2 -- M3
\
(feature) -- F1 -- F2
B人只有他自己的版本几乎相同的东西,但少了一些提交。
(master) M1 -- M2
\
(feature) -- F1
现在,Person A通过执行git rebase master
后跟git push -f
之类的操作进行重新定位。现在他有类似的东西:
(master) M1 -- M2 -- M3
\
(feature) -- F1 -- F2
冷却。完善。我们庆祝吧!哦,但不是那么快。现在人B想要得到功能分支,所以他做了一个git重置,以确保他不会搞砸(git reset --hard origin/feature
)。不,他并不关心失去任何局部变化。
所以这是我不理解的部分。 B人现在有一个功能分支,该分支被重新定位为不存在的主副本。看起来像是:
(master) M1 -- M2 -- ??
\
(feature) -- F1 -- F2
我可以帮助了解在这种情况下会发生什么吗?它可能看起来像一个边缘情况,但它发生在我身上相当多。在我的情况下,我既是人A又是人B,但在两台不同的机器上运行相同的代码。在单独工作时,我并不总是切换回主人并提取最新信息。这一切都有效,一旦我拉大师,日志看起来是正确的(它们匹配),但我真的不明白当主人不匹配时会发生什么。
感谢您的帮助!
答案 0 :(得分:2)
B人将在他们的回购中拥有提交M3,但是master
仍将指向M2(直到人员B在git pull
时运行master
。)