我希望有人知道把树枝弄得乱七八糟的麻烦事。
我有一个特性分支-- FB2 --它的父级是FB1,而后者又起源于master。
坏消息:我需要在主服务器上重定向FB2,就像它需要在FB1之前发布一样,而不需要FB1的任何提交。
好消息: FB2中很少有代码更改可以直接与来自FB1的变更集交互。然而,在来自FB1和FB2的多张票(~75张)上,有几十个来自拉请求的提交(~75)。
我正在寻找一种最不痛苦的方法来查找和合并直接提交给FB2的提交。另一种方法是修改现有的FB2分支,以重定向主服务器,并删除源自FB1的所有提交。
蛮力,樱桃采摘或重新基地将花费永远和容易出错。
"git重基--转到主FB1上“似乎在测试中不起作用。FB1的变化在FB2中仍然存在。
谢谢!
类似于这里的图表:
# CURRENT
A--B--C--D // master
\
E--F--G // FB1
\
H--I--J // FB2
# DESIRED
H--I--J // FB2
/ \
A--B--C--D M // merged
\
E--F--G // FB1发布于 2022-04-04 22:02:09
你在FB1和FB2之间有过什么重组吗?或者你只是fb1和fb2的分支,然后就有了自己的历史?如果是的话:
您可以尝试在提交G和J之间创建修补程序:
git diff #G..#J > mypatch.patch然后创建一个新分支,您实际上希望从该分支开始并应用该修补程序:
git apply mypatch.patch但是,如果新目标分支上不存在文件,则修补程序“填充”不会完全应用。
为此,您可能首先要这样做:
git diff --name-status #G..#J以确定实际文件更改了什么。
https://stackoverflow.com/questions/71743874
复制相似问题