还原一些提交并将它们分成新的分支

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

假设存在提交A,B,C和D,它们都在master分支中,因此历史记录如下所示。

A -> B -> C -> D -> HEAD.

C和D带来了一些未经充分测试的功能,您需要将它们分成新的分支(首先应该完成此工作),对其进行测试,等等,然后再合并回去。

所以我该如何还原主节点以提交B并将C和D分离到新分支中,从而使分支树看起来像这样?

A -> B -> master's HEAD.
      \-> C -> D -> new branch's HEAD.
git git-branch git-revert
1个回答
0
投票

很多方法。您需要在D上有一个新的分支标签,并在B上有一个主分支标签。有注释的方法,或者是稍短的方法:

git branch newbranch
git reset --hard @~2

或通过这种方式将您留在新的分支上,因此,如果您正在从那里工作,那么工作树的搅动就会减少:

git checkout -b newbranch
git branch -f master @~2

一个注释:只有一个HEAD,它是父级git commit将使用的。为了清楚起见,分支机构有提示。通常将HEAD附加到最后签出,提交或重置到的任何对象(即,指向该对象的符号链接),因此当您签出一个分支时,git为此将HEAD设置为符号引用(别名)分支提示。

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