我在 master 分支中进行了三个提交: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
什么 git 命令序列会将我带到那里?
我的第二个问题是,在第二个案例实现之后
如图,如果执行“恢复”以删除 Master 分支中的 C3,
它会对 Branch1 产生什么影响? Branch1 中的代码会变成
损坏或不稳定?
只需检查该提交并指定要创建的分支:
git checkout -b Branch2 C2
对于你的第二个问题,这取决于你如何定义“恢复”(git revert
or git reset
)。在这两种情况下,Branch1 仍将包含提交 C3(请记住,在 git 中分支只是“指针”,祖先信息存储在提交本身中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)