Git:如何从master分支中的早期/早期提交创建新分支?

时间:2011-07-01 10:44:36

标签: git

我在主分支中做了三次提交:C1,C2和C3。 从那时起,我创建了一个新的分支'Branch1'。做了一些 更改并让它们在Branch1上的C4中提交。

事情看起来如下:

C1--C2--C3<--Master
         \     
          C4<--Branch1    

但是,现在我想使用Master中的早期提交 分叉一个新的分支'Branch2'。即在主分公司, 我想回到C2,并在一个基础上建立 新的分支。主分支不得以任何方式受到干扰。 C5是一个提交保存更改在新的'Branch2'中完成的。 从图形上看,下图应该解释我想要的内容:

      C5<--Branch2
     /
C1--C2--C3<--Master
         \     
          C4<--Branch1    
  1. git命令序列会带我去哪里?

  2. 我的第二个问题是在第二个案例达成后 如果执行“恢复”以删除主分支中的C3, 它对Branch1有什么影响? Branch1中的代码会变成 损坏或不稳定?

1 个答案:

答案 0 :(得分:8)

只需检查该提交并指定要创建的分支:

git checkout -b Branch2 C2

对于您的第二个问题,这取决于您如何定义“还原”(git revertgit reset)。在这两种情况下,Branch1仍将包含提交C3(记住,在git分支中只是'指针',祖先信息存储在提交本身中。)