上周提交了更改,过了周末回来说要撤销上个story。于是,需要找到上周提交的版本,rollback回来。

git版本管理命令,自从习惯使用管理工具之后就很少接触了,当突然寻找其他指令的时候就成浆糊了,ctrl+k只能顺利的提交而无关管理。因此,工具简化操作却弱化了技能。就像前几天听到的BBC 6分钟英语的一段对话。

Rob说他当年在酒吧实习,对钱的加减算法很熟悉很强,因为那时候计算机还没有推广。

计算器的出现使人们放弃了自己计算的本领。有时候即便仅仅是简单的加减法也不愿用自己的脑袋计算了。不说好坏,自己的感觉非常糟糕,因为觉得自己曾经拥有的技能消退了而难过。所以说,加强自身而不完全依赖于外物还是很重要的。

管理git的全部回退原理和方式,参考git代码回滚:Reset、Checkout、Revert的选择。这里,只是记录我遇到过的做法。

1.reset

几个月前,我提交了一次更改,这个更改涉及几十个文件,提交到github,Jenkins build,然后health check 503 error。看着报错我毫无头绪,不明白health check究竟是因为代码的哪部分造成的,这提醒我以后的错误日志一定要详细。但有一点是肯定的,这次提交的更改有问题。既然上一次的代码没问题,那就回退吧。

我在本地,使用git reset current branch to here. 这是Intelij自带的git管理工具,可以指定版本后,然后回退到指定版本。本质上就是 git  reset 版本号。

显然,这个指令就是将head指针后退了一下,也就是说,当前版本是落后的。而我从master的最新一次提交reset到倒数第二个,那么我的当前的版本比maser落后一次提交。

既然回退好了,需要merge到master上面。对应到github上就是pull request.然而,当我选择pull request的时候显示nothing.说本次更改不用merge。也就是说master的历史中已经包含了这个版本,所以不用merge。

因此,如果想要合并分支,那么要合并的分支必须比当前分支的版本先进。显然,reset只能重置本地或者说本分支的更改。那么,我如果想要mater回退,我必须提交一个比mater先进而且内容正好的是上一次提交的相反的修改。这就是revert干的事情。

2.revert

revert指定版本可以实现版本回退。这个不是像reset一样指针回退,而是会创建一个新的提交,而且将指定版本的修改逆过来。这样,我们想回退的内容被逆反修改过来了,而且我们的版本比master先进。这样就可以直接提交了。

git版本回退, github版本回退的更多相关文章

  1. Git速成学习第一课:创建版本库与版本回退

    Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 我太困了0.0精神点再写...... /*我来啦!以后会陆续更新自己的学习笔记*/ Git是分布 ...

  2. Git时光机穿梭之版本回退

    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...

  3. git工具——版本的创建与回退

    1.创建一个版本库 进入要管理的文件路径:cd f:/ZK/Opencv3.4.2-YOLOv3 输入命令: git init 2.版本创建与回退 在文件目录下创建一个文件code.txt: vi c ...

  4. 第二课 ---git时光穿梭(版本回退)

    1.  git  status  掌握仓库当前的状态. 2.  git  diff 查看修改的内容部分. //版本回退: 1.查看更新的历史记录. git log git log --pretty=o ...

  5. git<撤销本地修改与回退版本>

    1. 使用 git checkout 撤销本地修改 即放弃对本地已修改但尚未提交的文件的修改,还原其到未修改前的状态. 注意: 已 add/ commit 的文件不适用个方法,应该用本文提到的第二种方 ...

  6. git-【二】本地git操作提交、版本回退

    一.创建版本库,提交文件 什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任 ...

  7. 【git】远程仓库版本回退方法

    1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...

  8. Git 基础教程 之 版本回退

    不断对文件进行修改,然后不断提交修改到版本库里. 当你觉得文件修改到一定程度时,可以保存一个“快照”,这个“快照”在Git中称为“commit”. 一旦文件被改乱了.误删了,都可以从最近一个“comm ...

  9. git操作记录(如何回退到某个历史版本,如何提交部分文件等方法)

    当前项目使用git管理代码,在使用的过程中会遇到一些问题,这里记录下 1.合并代码后 在合并组员的代码后会出现下面的界面,开始的时候都会关闭,重新打开,乐此不疲到忍无可忍 解决方法: 出现这种界面是要 ...

随机推荐

  1. C# RabbitMq .net 使用

    本文转载来自 [http://www.cnblogs.com/yangecnu/p/Introduce-RabbitMQ.html]写的很详细. 文件安装包官方DEMO下载地址是:http://pan ...

  2. 通过修改i8042prt端口驱动中类驱动Kbdclass的回调函数地址,达到过滤键盘操作的例子

    同样也是寒江独钓的例子,但只给了思路,现贴出实现代码 原理是通过改变端口驱动中本该调用类驱动回调函数的地方下手 //替换分发函数 来实现过滤 #include <wdm.h> #inclu ...

  3. SQL Server 数据变更时间戳(timestamp)在复制中的运用

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 方案(Solution) 方案一(Solution One) 方案二(Solution Two ...

  4. 培训SQLServer 嵌套事务PPT分享

    培训SQLServer 嵌套事务PPT分享 下载地址 http://files.cnblogs.com/files/lyhabc/SQLServer%E5%B5%8C%E5%A5%97%E4%BA%8 ...

  5. Lesson 8 The best and the worst

    Text Joe Sanders has the most beautiful garden in our town. Nearly everbody enters for 'The Nicest G ...

  6. 你必须知道的指针基础-1.预备篇:搭建GCC开发环境

    一.关于GCC编译器 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC是Linux平台下最常用的编译器,GCC原名 ...

  7. CSharpGL(2)设计和使用场景元素及常用接口

    CSharpGL(2)设计和使用场景元素及常用接口 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...

  8. ASP.NET MVC 5 - 给电影表和模型添加新字段

    在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...

  9. 老司机学Xamarin系列总目录

    Xamarin开发环境及开发框架初探 Xamarin Forms开发框架二探 (Prism vs MvvmCross) Xamarin Forms开发框架之MvvmCross插件精选 Xamarin开 ...

  10. css水平居中那点事

    昨晚深夜写了css垂直居中那点事,今晚该写他的兄弟篇:css水平居中那点事了..…^^ 其实本来这两个可以连在一起写,可是为了不要搞混,为了让思路更清晰,最后决定还是分开来些比较好...这样以后也有利 ...