gpt4 book ai didi

git - 当我压缩父分支的提交并将其 merge 到主分支时,子分支会发生什么?

转载 作者:行者123 更新时间:2023-12-05 04:42:52 25 4
gpt4 key购买 nike

我的分支是这样的

M1 --- M2 --- M3 --- ............. --- M50 --- M51
\
\
P1 --- P2 --- P3 --- P4
\
\
C1 --- C2 --- C3

这里 M 是主提交P 是父分支提交C 是子分支提交

我正在开发一个功能 (F1) 并创建了一个分支 (Parent) 并在 P3 之前进行了提交。此时我开始研究新功能(F2),但由于我需要 P3 提交更改来处理新功能,我在 P3 创建了一个分支(子)。我收到了一条功能 F1 的评论评论,并在父分支中提交了 P4。

没有冲突,所以我重新定位子分支以获得类似的东西。

M1 --- M2 --- M3 --- ............. --- M50 --- M51
\
\
P1 --- P2 --- P3 --- P4
\
\
C1 --- C2 --- C3

现在我的父分支提交被压缩并与 M52 的主分支 merge 。在这里,我对我的子分支发生的事情感到困惑。我猜是这样的。

M1 --- M2 --- M3 --- ............. --- M50 --- M51 -- M52(contains squashed commits of P1-P4)
\
\
C1 --- C2 --- C3

如果我的猜测是正确的,那么实现这样的目标的正确命令应该是什么?如果我的猜测也是错误的,请告诉我下一步。

M1 --- M2 --- M3 --- ............. --- M50 --- M51 -- M52
\
\
C1 --- C2 --- C3

我相信它又是一个基于 onto 的 rebase ,但我不确定它到底应该是什么?许多团队在 master 上工作并 merge 他们的分支,所以我不想自己承担错误命令的风险。

提前致谢。

最佳答案

在父分支的“压缩和 merge ”之后,您的历史将如下所示:

M1 --- M2 --- M3 --- ............. --- M50 --- M51 --- M52
\
\
P1 --- P2 --- P3 --- P4 # <- the 'Pxx' commits still exist
\
\
C1 --- C2 --- C3

您正在寻找的 rebase 命令是:

git rebase --onto M52 P4 child

之后,您将不得不强制推送您的 child 分支以在远程仓库上更新它:

git push --force-with-lease origin child

关于git - 当我压缩父分支的提交并将其 merge 到主分支时,子分支会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69751743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com