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命令可以打开,左上角也有“显示目标按钮”。
答案:
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 学习笔记(移动提交记录篇)相关推荐
- Learn Git Branching 学习笔记(高级话题篇)
目录 一.高级话题篇 1.多分支rebase 2.选择父提交记录 3.纠缠不清的分支 Git的一些技术.技巧与贴士集合在上一篇文章中 Learn Git Branching 学习笔记(Git 技术.技 ...
- learn git branching学习整理3
介绍 learn git branching是一个非常好的git学习网站,它与传统的文字讲解相比较起来有一个非常大的亮点----图形化的git提交树可以实时的反馈并告诉你当前所做的git操作在对于代码 ...
- git 指令学习和熟悉——learn git branching练习笔记
前言: 在工作中我们用到git系列工具机会很多,也常常需要熟悉git 相关指令,那怎样才能高效学习git指令呢?我们可以通过小游戏learn git branching和菜鸟教程完成学习. 小游戏链接 ...
- 分享一个学习git的图形化学习网站-Learn Git Branching参考答案整理
分享一个学习git的图形化学习网站:Learn Git Branching 初次学习点这里 这个链接可以跳过前面的帮助信息直接进入:Learn Git Branching 老手点这里 LearnGit ...
- 《Got Git》学习笔记(一)
<Got Git>学习笔记(一) 最近想对自己的代码和文档进行归档整理,需要一个版本控制系统来进行 处理.自然而然的想到了目前流行的GitHub. GitHub,是一个面向开源及私有软件项 ...
- Git 个人学习笔记及心得
作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...
- 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 相 ...
- git的学习笔记(二):git远程操作
git的学习笔记(一):git本地操作 1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目 ...
- git/github学习笔记
原文地址为: git/github学习笔记 请移步到:http://www.testclass.net/git/ ----- 我重新对git/github教程进行了编排和整理. 1. git 版本控制 ...
最新文章
- linux父进程中显示子进程pid,请教linux下c语言函数fork父进程打印子进程的PID
- 微软相关的开发资源列表(update)
- android websocket封装,Android WebSocket 方案选型OkHttp
- Linux编程make命令
- html 标签 anki,为什么不建议使用Anki模板里的标签?
- HTML绘制机器人代码,C#编写机器人PCSDK程序-界面程序上画机器人跟着画
- Unity 原生版本管理工具VersionControl - Plastic SCM 详解
- 马斯克:俄罗斯火箭发动机非常棒 停售不会影响SpaceX
- ubuntu kernel panic查看源文件
- 关于RabbitMQ启动慢问题的解决方法
- IllegalStateException: Only fullscreen opaque activities can request orientation
- [转载]程序员去面试的梗!面试官:“哦了,明天来上班吧”
- Java变量概述与使用
- 华为 路由双点双向引入
- 自定义下拉回弹View-掌握View冲突处理
- 腾讯云服务器安装MySQL并设置远程登录
- MMS流媒体下载原理
- 数据结构之图(二)——邻接矩阵
- 华为钱包扫码云闪付_支持华为钱包云闪付的有几个机型
- 想搞机器学习,不会特征工程?你TM逗我那!