gpt4 book ai didi

mercurial - 我怎么能在 mercurial 中使用 "split the branch further"?

转载 作者:行者123 更新时间:2023-12-03 07:54:08 24 4
gpt4 key购买 nike

不可否认,这是一个误导性的标题,但我不知道如何更好地表达它。

因此,我犯了一个错误,即在开设分支机构之前推送所有项目特定的更改。这样,默认分支中就有一些不属于那里的变更集。他们应该在我新开的分行。

我是否必须先撤销所有变更集,然后再将它们推送到正确的分支?那行得通吗?

感谢您的帮助。

最佳答案

如果不求助于 EditingHistory(通常再次建议这样做,并且肯定与反复无常的“不可变历史”设计目标背道而驰),这些更改将永远存在于您的历史记录中。但是,您可以在“提示”修订版中撤消它们,然后将它们滴回到分布在多个分支上的多个后续变更集中。

让我们想象这是您当前的历史记录:

[R0] -> [R1] -> [R2] -> [R3]

修订版 R2 和 R3 在默认分支中有一些你想要的东西,而一些你希望在不同分支中的东西。您可以创建一个新的修订版本 R4,以撤消 R2 和 R3。这可以按照您的建议使用回退来完成,或者因为您正在进行多个变更集,使用“恢复”可能更容易。

hg update tip ; hg revert --all -r R2 ; hg commit -m 'undid changes R2 and R3'

那么您的历史记录将如下所示:

[R0] -> [R1] -> [R2] -> [R3] -> [R4]

然后您可以将您的工作拆分为您希望最初完成的变更集,从而产生如下历史记录:

[R0] -> [R1] -> [R2] -> [R3] -> [R4] -> [R5] -> [R7]
\
--> [R6] -> [R8]

R6 和 R8 可以位于名为“default”的分支上,也可以位于不同的命名分支上。无论哪种方式,您都可以通过执行以下操作将 R0 推送到 R5 和 R7:

hg push -r R7

这是可行的,因为推送会推送修订及其所有祖先——但 R6 和 R8 不是 R7 的祖先,因此无论它们在哪个分支上都不会被推送。

关于mercurial - 我怎么能在 mercurial 中使用 "split the branch further"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081990/

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