目录

一、移动提交记录篇

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命令可以打开,左上角也有“显示目标按钮”。


答案:

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的顺序

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

Learn Git Branching 学习笔记(移动提交记录篇)相关推荐

  1. Learn Git Branching 学习笔记(高级话题篇)

    目录 一.高级话题篇 1.多分支rebase 2.选择父提交记录 3.纠缠不清的分支 Git的一些技术.技巧与贴士集合在上一篇文章中 Learn Git Branching 学习笔记(Git 技术.技 ...

  2. learn git branching学习整理3

    介绍 learn git branching是一个非常好的git学习网站,它与传统的文字讲解相比较起来有一个非常大的亮点----图形化的git提交树可以实时的反馈并告诉你当前所做的git操作在对于代码 ...

  3. git 指令学习和熟悉——learn git branching练习笔记

    前言: 在工作中我们用到git系列工具机会很多,也常常需要熟悉git 相关指令,那怎样才能高效学习git指令呢?我们可以通过小游戏learn git branching和菜鸟教程完成学习. 小游戏链接 ...

  4. 分享一个学习git的图形化学习网站-Learn Git Branching参考答案整理

    分享一个学习git的图形化学习网站:Learn Git Branching 初次学习点这里 这个链接可以跳过前面的帮助信息直接进入:Learn Git Branching 老手点这里 LearnGit ...

  5. 《Got Git》学习笔记(一)

    <Got Git>学习笔记(一) 最近想对自己的代码和文档进行归档整理,需要一个版本控制系统来进行 处理.自然而然的想到了目前流行的GitHub. GitHub,是一个面向开源及私有软件项 ...

  6. Git 个人学习笔记及心得

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  7. Git Learning 学习笔记

    文章目录 1. 前言 2. 基础篇 2.1 Git Commit 2.2 Git Branch 2.3 Git Merge 2.4 Git Rebase 3. 高级篇 3.1 分离HEAD 3.2 相 ...

  8. git的学习笔记(二):git远程操作

    git的学习笔记(一):git本地操作 1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目 ...

  9. git/github学习笔记

    原文地址为: git/github学习笔记 请移步到:http://www.testclass.net/git/ ----- 我重新对git/github教程进行了编排和整理. 1. git 版本控制 ...

最新文章

  1. linux父进程中显示子进程pid,请教linux下c语言函数fork父进程打印子进程的PID
  2. 微软相关的开发资源列表(update)
  3. android websocket封装,Android WebSocket 方案选型OkHttp
  4. Linux编程make命令
  5. html 标签 anki,为什么不建议使用Anki模板里的标签?
  6. HTML绘制机器人代码,C#编写机器人PCSDK程序-界面程序上画机器人跟着画
  7. Unity 原生版本管理工具VersionControl - Plastic SCM 详解
  8. 马斯克:俄罗斯火箭发动机非常棒 停售不会影响SpaceX
  9. ubuntu kernel panic查看源文件
  10. 关于RabbitMQ启动慢问题的解决方法
  11. IllegalStateException: Only fullscreen opaque activities can request orientation
  12. [转载]程序员去面试的梗!面试官:“哦了,明天来上班吧”
  13. Java变量概述与使用
  14. 华为 路由双点双向引入
  15. 自定义下拉回弹View-掌握View冲突处理
  16. 腾讯云服务器安装MySQL并设置远程登录
  17. MMS流媒体下载原理
  18. 数据结构之图(二)——邻接矩阵
  19. 华为钱包扫码云闪付_支持华为钱包云闪付的有几个机型
  20. 想搞机器学习,不会特征工程?你TM逗我那!

热门文章

  1. 智能家居:我在北方裹着貂
  2. 新托业笔经纠结的作弊
  3. 信管专业的目标职位体系与职业认证体系
  4. 初级前端高频面试题之VUE
  5. 同济大学计算机系统结构考试题,同济大学大学计算机基础试题
  6. ubuntu使用源下载库
  7. 《React后台管理系统实战:十一》可视图表及首页图表
  8. Windows Server AD域控 WUSU补丁服务器
  9. POI实现动态导出功能
  10. 任天堂Switch游戏发售时如何获得警报