【学了就忘】Git后悔药 — 33.版本回退操作(二)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【学了就忘】Git后悔药 — 33.版本回退操作(二)相关的知识,希望对你有一定的参考价值。
参考技术Agit reset --mixed commit-id 命令:回退到指定版本。(soft:混合的,即:中等回退。)
该命令不仅修改了分支中HEAD指针的位置,还将暂存区中数据也回退到了指定版本。
但是工作区中的版本仍是回退前的版本。
--mixed 参数是 git reset 命令的默认选项。
示例开始:
首先在版本库中的 readme.txt 文件中添加一行内容,并提交该内容。我们的目的就是要再回退到该版本。
1)查看本地版本库日志
2)向 readme.txt 文件中新增一行数据,并提交到本地版本库
3)现在比对工作区与暂存区、暂存区与本地版本库的差异
我们可以看到此时,工作区、暂存区与本地版本库中的 readme.txt 文件状态无差异。
4)开始回退操作,退回到V3版本
使用 git reset --mixed HEAD^ 命令,退回到前一个版本。
说明:
5)回退后,对比工作区、暂存区与本地库中版本中文件的差异
回退后,我们再次对比了工作区、暂存区与本地库中版本中文件的差异:
说明:工作区中的内容没有回退,但是暂存区和本地库中的内容回退到了之前的版本。(重要)
6)查看本地版本库的提交日志信息
从上我们可以看到:(重点)
7)恢复到回退前版本
上面说了,使用 git reset --mixed 命令回退,做了两个操作
而工作区内容不回退。
我们现在来查看一下工作目录中的文件状态。
我们可以看到 readme.txt 文件是修改未暂存状态。
所以若要恢复到回退之前的版本,也是两种方式:
第一种常规操作,这里就不演示了。下面演示一下第二种方式:
我们查看到, readme.txt 文件的内容已经完全恢复。
『学了就忘』Linux基础 — UNIX系统介绍
在学习Linux系统之前,我们先来了解以下UNIX系统。
(一)UNIX系统介绍
在介绍Linux系统之前,我们先来了解以下UNIX系统。
1、UNIX系统发展历史
1965年,美国麻省理工学院(MIT)、通用电气公司(GE)及AT&T的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有多道程序处理能力的分时操作系统,但因Multics追求的目标过于庞大复杂,项目进度远远落后于计划,最后贝尔实验室宣布退出。
1969年,美国贝尔实验室的肯·汤普森在DEC PDP-7机器上(性能低)开发出了UNIX系统。
1971年,肯·汤普森的同事丹尼斯·里奇发明了C语言;1973年,UNIX系统的绝大部分源代码用C语言重写,这为提高UNIX系统的可移植性打下基础。
左边:肯·汤普森
右边:丹尼斯·里奇
2、UNIX 主要发行版本
目前最主流的三款发行版本如下:
说明:
AIX最为普及(数量最多),因为IBM的服务器买的最多,但是AIX有一个巨大的问题就是,它只能在IBM的服务器硬件平台安装(PowerPC)。
换句话说,我们自己用的普通电脑,装不了这个系统。想要学习AIX系统,就需要买一台IBM的服务器。
HP-UX也同样是上边的问题,必须在PA-RISC平台的服务器上安装。
Solaris具有支持微机的版本。可以在我们自己普通的电脑上安装,不需要在单独购买服务器。
这就变成你学习UNIX系统成本最低的一个选择了,而我们到市面上买一些UNIX的书籍,可以发现,反而Solaris系统的书籍最多。
补充:
Linux和BSD这样的系统,称为类UNIX系统。命令上基本上大致一样,文件系统结构基本一样,区别就是有个别命令,有个别文件保存的位置或者文件名不一样。但是深入到底层的内容,确实是有很多很多的内容是不一样的。
(二)GNU计划
1、GNU计划介绍
Richard Mathew Stallman(史托曼)在1984年发起的GNU计划,对于现今的自由软件风潮,有不可磨灭的地位!目前我们所使用的很多自由软件或开源软件,几乎均直接或间接受益于GNU这个计划。GNU计划对于整个自由软件与开放原始码软件来说,是占有非常重要的角色!
2、为何Stallman会发起这个GNU计划呢?
史托曼开始GNU计划的目的是:建立一个自由、开放的Unix操作系统(Free Unix)。
Tips:
其实GNU是GNU'sNot Unix的缩写,意思是说,GNU并不是Unix!
因为当下并没有自由的Unix核心存在,所以这些开源的软件仍只能在那些有专利的Unix平台上工作。
3、GNU的通用公共许可证:
到了1985年,为了避免GNU所开发的自由软件被其他人所利用,而成为专利软件,所以Stallman与律师草拟了有名的通用公共许可证(General Public License,GPL)。
(1)那么这个GPL(GNU General Public License)是什么?
Stallman对GPL一直是强调Free的,这个Free的意思是这样的:大意是说,Free Software(自由软件)是一种自由的权力,并非是价格。也就是说,自由软件的重点并不是指免费的,而是指具有自由度(freedom)的软件。
举例来说,你可以拥有自由呼吸的权力、你拥有自由发表言论的权力,但是,这并不代表你可以到处喝免费的啤酒(free beer)。
史托曼进一步说明了自由度的意义是:使用者可以自由的执行、复制、再发行、学习、修改与强化自由软件。
GPL是站在互助互利的角度上去开发的,你不应该将大家的成果占为己有。
(2)为什么要将自由软件挂上GPL的【版权宣告】呢?
因为如此一来,你所拿到的软件可能原先只能在Unix上面跑,但是经过原始码的修改之后,你将可以拿他在Linux或者是Windows上面来跑!总之,一个软件挂上了GPL版权宣告之后,他自然就成了自由软件!这个软件就具有底下的特色:
- 取得软件与原始代码:你可以根据自己的需求来执行这个自由软件;
- 复制:你可以自由的复制该软件;
- 修改:你可以将取得的原始代码进行程序修改工作,使之适合你的工作;
- 再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
- 回馈:你应该将你修改过的程序代码回馈于社群。
Tips:
总体概括的说,你用我的开源软件可以修改,在你修改开发之后你发布出去的软件,必须也是开源的。
(3)这个版权宣告对于作者有何好处?
因为是提供原始代码的自由软件,那么你的程序代码将会有很多人帮你查阅,如此一来,程序的漏洞与程序的优化将会进展的很快!所以,在安全性与效能上面,自由软件一点都不输给商业软件。
此外,因为GPL授权当中,修改者并不能修改授权,因此,你如果曾经贡献过程序代码,你将名留青史。
对于程序开发者来说,GPL是一个非常好的授权,因为大家可以互相学习对方的程序撰写技巧,而且自己写的程序也有人可以帮忙除错。
对于广大的终端用户,或许自己不会编译程序代码或者是帮人家除错,但是终端用户使用的软件绝大部分就是GPL的软件。
大致的优点总结:
- 软件安全性较佳;
- 软件执行效能较佳;
- 软件除错时间较短;
- 贡献的原始码永远都存在。
Tips1:
GNU的通用公共许可证(GPL),随着时间的推移,也相继出现了第二版GPLv2,和第三版GPLv3,这个可以自己再扩展下。
Tips2:
在这里必须要说明的是由于有GNU所开发的几个重要软件,如:
GCC说明
- 不论是什么软件,都得要进行编译成为二进制文件(binary
program)后才能够执行,说明软件的能见度还是不够。因此他便开始撰写C语言的编译程序,那就是现在相当有名的GNUCCompiler(gcc)! - Emacs 编辑器、函式库(GNU C library),以及可以被使用来操作操作系统的基本接口BASH
shell,这些都在1990年左右完成的。
4、自由软件的活动
1984年创立GNU计划的Stallman先生认为,写程序最大的快乐就是让自己开发的良好的软件让大家使用起来!
如果使用方撰写程序的能力比自己强,那么当对方修改完自己的程序,并且回传修改后的程序代码给自己,那自己的程序撰写功力无形中就更往上爬了!
而既然程序是想要分享给大家使用的,不过每个人所使用的计算机软硬件并不相同,既然如此的话,那么该程序的原始码(Source code)就应该要同时释出,这样才能方便大家修改而适用于每个人的计算机中。这个将原始代码连同软件程序释出的举动,在GNU计划的范畴之内就称为自由软件(Free Software)运动!
此外,史托曼同时认为,如果你将你程序的Source code分享出来时,若该程序是很优秀的,那么将会有很多人使用,而每个人对于该程序都可以查阅Source code,无形之中就会有一票人帮你除错,你的程序将会越来越壮大,越来越优秀。
Tips:
什么是Open Source呢?
所谓的Source code是程序发展者写出的源代码,Open Source就是,软件在发布时,同时将作者的原始码一起公布的意思!
5、自由软件与商业行为
有人会说,目前不是有很多Linux开发商贩卖Linux这个GPL授权的软件。原因很简单,因为他们大多都是贩卖的是售后服务。
比如你可以购买他们的Linux光盘,如果你购买了光盘,他们会提供相关的手册说明文件,同时也会提供你数年不等的咨询、售后服务、软件升级与其他协力工作等等的附加价值!
通过服务来收费,自由软件确实还是具有商业空间的。
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注我的微信公众号【伤心的辣条】免费获取~
送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
我的学习交流群:902061117 群里有技术大牛一起交流分享~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐:
以上是关于【学了就忘】Git后悔药 — 33.版本回退操作(二)的主要内容,如果未能解决你的问题,请参考以下文章