如何将工作目录复制到新的提交中

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

我有如下的提交结构。

a->b->c

现在c是一个实验,它和b有很大的不同(以至于对b的任何修改都会导致c的冲突)。我想保留c,但又想停止主链。因为b和c之间的冲突太多,简单的重定基将是一堆工作。

所以我想让

a->b
 \->c'

哪儿 c' 是简单的工作空间的副本,在 c. 在git中,我会使用 git reset --soft a 并为我的 c'在 mercurial 中有没有类似的东西可以做?

mercurial
1个回答
2
投票

听起来你想使用 revert --all

伪命令 a,c 是指提交的revids)。)

  1. update -r a
  2. revert --all -r c
  3. commit -m "new c"
  4. strip -r c

使用GUI使用revert all的指南可以在下面找到 此处


0
投票

所以我把我最后做的事情发上来,但希望能得到更好的答案。

  1. 在a上做一个 "什么都不做 "的提交(在我的例子中,我加了一行)。我们需要这个假的,因为重归到 ab 将不再说 nothing to rebase.
a->b->c
\->f
  1. hg rebase -s b -d f --keep 克隆整个分支。
a->b->c
\->f->b'->c'
  1. hg histedit把c'折起来,然后放下f.
a->b->c
\->c''
  1. hg prune c
a->b
\->c''
© www.soinside.com 2019 - 2024. All rights reserved.