我在主分支(master branch)上提交了三个(commit):C1、C2和C3。然后我创建了一个新的分支'Branch1',进行了一些修改并将它们(commit)提交到'Branch1'中的C4。
这些事情看起来是这样的:
C1--C2--C3<--Master
\
C4<--Branch1
然而,现在我想在主分支上使用早期提交来创建一个名为“Branch2”的新分支。也就是说,在主分支中,我想回到C2的时间并在其之上构建一个新的分支。主分支不应以任何方式受到干扰。C5是保存在新“Branch2”中所做更改的提交。从图形上看,下面的图示应该解释了我想要的:
C5<--Branch2
/
C1--C2--C3<--Master
\
C4<--Branch1
哪些git命令序列可以带我到那里?
我的第二个问题是,在实现第二幅图中的情况后,如果在主分支中执行“还原”以删除C3,对Branch1会产生什么影响? Branch1中的代码会变得损坏或不稳定吗?