Learn Git Branching 学习笔记(移动提交记录篇)

目录

一、移动提交记录篇

1.Git Cherry-pick

2.交互式rebase


Git用法高级篇在上一篇文章中Learn Git Branching 学习笔记(高级篇)_流年--by gone的博客-CSDN博客

这篇文章主要来介绍Git移动提交记录的一些操作。

一、移动提交记录篇

1.Git Cherry-pick

       本系列的第一个命令是git cherry-pick,命令形式为:

          git cherry-pick<提交号>

       如果你想将一些提交复制到当前所在的位置(HEAD)下面的话,Cherry-pick是最直接的方式了。我个人非常喜欢cherry-pick,因为它特别简单。

       这里有一个仓库,我们想将side分支上的工作复制到main分支,立刻想到了之前学过的rebase。

git cherry-pick C2 C4

       我们只需要提交记录C2和C4,所以git就会把他们抓过来放到当前分支下。

题目:

        要通过此关,只需要简单的将三个分支中的提交记录复制到main上就可以了。目标窗口展示了我们想要哪些提交记录,如果不小心关掉了的话,通过show goal命令可以打开,左上角也有“显示目标按钮”。

e1c3932621e6cc107b1072d54d50bef8.png
答案:

git cherry-pick C3 C4 C7

2.交互式rebase

       当知道所需要的提交记录(并且还知道这些提交记录的哈希值)时,用cherry-pick再好不过了——没有比这更简单的方式了。

       但是如果你不清楚你想要的提交记录的哈希值呢?型号git帮你想到了这一点,我们可以利用交互式rebase——如果你想从一系列的提交记录中找到想要的记录,这就是最好的方法了。

       交互式rebase指的是使用带参数--interactive的rebase命令,简写为-i

       如果在命令后增加了这个选项,git会打开一个UI界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。

       在实际使用时,所谓的UI窗口一般会在文本编辑器——如vim中打开一个文件,考虑到课程的初衷,网站里弄了一个对话框来模拟这些操作。

       当 rebase UI界面打开时, 你能做3件事:

  • 调整提交记录的顺序(通过鼠标拖放来完成)
  • 删除你不想要的提交(点击切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)
  • 合并提交。它允许你把多个提交记录合并成一个。

       看个例子,当点击下面的按钮时,会出现一个交互对话框。对提交记录做个排序(当然也可以删除某些提交)

git rebase -i HEAD~4
(命令的动作:从master到HEAD~4,这整串分支,从HEAD~4位置复制了一份)

        选择不复制的节点,本例中我选择C2和C3。

         git严格按照在对话框中指定的方式进行了复制。

 题目:

         要通过本关, 做一次交互式的 rebase,整理成目标窗口中的提交顺序。记住,你随时都可以用 undo、reset 修正错误。

答案:

git rebase -i HEAD~4
之后删除C2,调整C4C5的顺序

移动提交记录篇完结撒花~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值