2

我创建了一个分支并提交了一个变更集作为我的主分支的子级。我实际上打算搁置更改并从我的主分支创建一个新分支。如何恢复和/或使分支成为我的主分支的直接子分支?

我有一种预感,我需要恢复或进行减法合并

4

1 回答 1

3

对于 PlasticSCM,这个想法类似于下面描述的 Git:

  • 有一个引用您当前提交的分支
  • 将分支重置为最后一次正确的提交
  • 使用switchbranchbasePlasticSCM4 的命令提及或此线程中的简单合并提及。

    • 在 PlasticSCM 3.0 中执行变基的步骤是:更改分支基数、更新、合并。
    • 在 PlasticSCM 4.0 中更简单,只需从要变基的分支执行合并。

git中的原始答案:

如果你有:

 x--x--x--x                 main
           \
            y--y--y         child
                   \
                    z--z    mybranch

你可以做一个:

git rebase --onto main child mybranch

那会给你:

            z'--z'          mybranch
           /
 x--x--x--x                 main
           \
            y--y--y         child

如果您不想重新调整我所有的分支,那么一个简单的:

git checkout mybranch
git branch -b mynewbranch
git reset --hard z          # reset mybranch HEAD to the last commit before your new commit
git rebase --onto main mybranch mynewbranch

对于单个提交,您也可以使用git cherry-pick,但我总是更喜欢git rebase.

于 2013-10-08T06:11:38.510 回答