git命令-5.高级话题

五、高级话题

1.多分支 rebase

哥们儿,我们准备了很多分支!咱们把这些分支 rebase 到 master 上吧。

但是你的领导给你提了点要求 —— 他们希望得到有序的提交历史,也就是我们最终的结果应该是 C6'C7' 上面, C5'C6' 上面,依此类推。

即使你搞砸了也没关系,用 reset 命令就可以重新开始了。记得看看我们提供的答案,看你能否使用更少的命令来完成任务!
在这里插入图片描述

git rebase master bugFix;
git rebase bugFix side;
git rebase side another;
git rebase another master;

在这里插入图片描述

2.选择父提交记录

操作符 ^~ 符一样,后面也可以跟一个数字。

但是该操作符后面的数字与 ~ 后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个父提交。还记得前面提到过的一个合并提交有两个父提交吧,所以遇到这样的节点时该选择哪条路径就不是很清晰了。

Git 默认选择合并提交的“第一个”父提交,在操作符 ^ 后跟一个数字可以改变这一默认行为。

废话不多说,举个例子。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

课后小练习

要完成此关,在指定的目标位置创建一个新的分支。

很明显可以简单地直接使用提交记录的哈希值(比如 C6),但我要求你使用刚刚讲到的相对引用修饰符!
在这里插入图片描述

git branch bugWork master^^2^ # ^^2^= ^+^2+^(父+父2分支+父)

在这里插入图片描述

3.纠缠不清的分支

哇塞大神!这关我们要来点不同的!

现在我们的 master 分支是比 onetwothree 要多几个提交。出于某种原因,我们需要把 master 分支上最近的几次提交做不同的调整后,分别添加到各个的分支上。

one 需要重新排序并删除 C5two 仅需要重排排序,而 three 只需要提交一次。

慢慢来,你会找到答案的 —— 记得通关之后用 show solution 看看我们的答案哦。
在这里插入图片描述

git checkout one
git cherry-pick C4 C3 C2
git checkout two
git cherry-pick C5 C4 C3 C2
git branch -f three C2

在这里插入图片描述上一篇:git命令-4.杂项(技术、技巧与贴士大集合)
下一篇:

springboot、python、数据分析、管理系统、客服、门户网站、小程序
QQ:2973688860

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

da297368860

你的鼓励是优质内容产出的最大动

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值