将最近的提交放在 Mercurial (Hg) 中的单独(命名)分支中

问题描述 投票:0回答:2

如果自上次推送以来我对默认分支进行了多次提交,是否可以返回并将这些提交移动到单独的命名分支中?

也就是说,我有:

A--B--C--D

我想要:

A
 \
  B--C--D

我希望这是有道理的?

mercurial branch tortoisehg
2个回答
5
投票

看看移植扩展。

但就我个人而言,我会使用 MQ 来完成,如下所示:

# assuming revs 1 and 2 are the ones we want to move
hg qimport -r1:2

# qimport creates a patch for each changeset
>hg qapplied
1.diff
2.diff

# pop the patches, to save for later
>hg qpop -a
popping 2.diff
popping 1.diff
patch queue now empty

# switch branches
>hg branch my-branch
marked working directory as branch my-branch

# push our saved changesets, essentially rebasing on the new branch
>hg qpush -a
applying 1.diff
applying 2.diff
now at: 2.diff

# make the patches part of permanent history
>hg qfin -a

如果您愿意,您也可以弯曲 Rebase 扩展来满足此目的。


2
投票

如果提交仍然仅在您的本地存储库中并且尚未推送到任何其他存储库,那么是的,您可以以相当小的麻烦重新安排它们。但是,如果他们的范围超出了您的本地存储库,您将遇到很多麻烦。

要重新安排提交,您需要使用 MQ 扩展。 这是一个教程,因为它比我在这里能更好地解释事情。

© www.soinside.com 2019 - 2024. All rights reserved.