gpt4 book ai didi

Mercurial 搬迁至新分支

转载 作者:行者123 更新时间:2023-12-02 19:51:52 29 4
gpt4 key购买 nike

我有许多更改已提交到本地存储库,但尚未推送。由于某个功能花费的时间比预期的要长,因此我想在推送之前将这些更改交换到指定分支上。我怎样才能做到这一点?

最佳答案

正如 Mark 所建议的,MqExtension 是解决您问题的一种解决方案。恕我直言,更简单的工作流程是使用 rebase extension 。假设您有这样的历史:

@  changeset:   2:81b92083cb1d
| tag: tip
| summary: my new feature: edit file a
|
o changeset: 1:8bdc4508ac7b
| summary: my new feature: add file b
|
o changeset: 0:d554afd54164
summary: initial

这意味着修订版 0 是您开始开发功能的基础。现在您想要在指定分支上进行修订 1-2,假设是 my-feature。更新到修订版 0 并创建该分支:

$ hg up 0
$ hg branch my-feature
$ hg ci -m "start new branch my-feature"

历史现在看起来像这样:

@  changeset:   3:b5939750b911
| branch: my-feature
| tag: tip
| parent: 0:d554afd54164
| summary: start new branch my-feature
|
| o changeset: 2:81b92083cb1d
| | summary: my new feature: edit file a
| |
| o changeset: 1:8bdc4508ac7b
|/ summary: my new feature: add file b
|
o changeset: 0:d554afd54164
summary: initial

使用rebase命令将修订版1-2移动到修订版3:

$ hg rebase -s 1 -d 3

结果如下图:

@  changeset:   3:88a90f9bbde7
| branch: my-feature
| tag: tip
| summary: my new feature: edit file a
|
o changeset: 2:38f5adf2cf4b
| branch: my-feature
| summary: my new feature: add file b
|
o changeset: 1:b5939750b911
| branch: my-feature
| summary: start new branch my-feature
|
o changeset: 0:d554afd54164
summary: initial

就是这样..正如对 Mark 的回答的评论中提到的,移动已经推送的变更集通常是一个坏主意,除非您在一个能够沟通和执行历史操作的小团队中工作。

关于Mercurial 搬迁至新分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665549/

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