Git之旅(1):版本管理,了解一下

栏目: 编程工具 · 发布时间: 5年前

内容简介:所属分类:Git
  • A+

所属分类:Git

在这里,会循序渐进的总结跟git相关的一些概念与操作,这些文章都是新手向的,由浅入深,以便自己回顾,也方便他人参考。

既然是新手向的,我们就从头开始聊吧,了解过git的朋友就不用看了。

先来说说我用笨办法进行版本管理的一些经历···

我创建了一个文件,test.txt,我在这个文件中写入了一行文本,文本如下

$ cat test.txt
abcdefg

如你所见,文件中只有一行字母。

现在,我又在这个文件中瞎写了一行数字。

$ cat test.txt
abcdefg
1234567

此时,文件中有两行文本了,但是,我突然又不想要第二行数字了,我想让这个文件中的文本回到上一个状态,就是说,我想让文件回到只有第一行字母的状态,怎么办呢?最简单的办法就是把第二行给删了,没错,这样做完美的解决了我的问题,但是,我之所以能这样做,就是因为文本太少,改动也太少,所以,很容易就让文件变回了之前的某个状态,但是如果文件中的文本有几百行,我改了其中的几十,当我再想回到修改几十行之前的状态,就麻烦了,因为我可能已经忘记了我修改了哪些地方,所以,保险的办法是我应该在修改之前,将文件拷贝出一个副本,然后再去修改,这样,无论我修改了多少行,无论我修改了多少次,就都能够回到备份时的状态了。

上述过程只是针对一个文件的版本管理,在实际使用的过程中,我们经常需要对一堆文件进行管理,这些文件之前通常还有关联关系,比如,你将一段代码写到了A文件中,A文件中的代码如果需要正常运行,还需要依赖B文件中的某段代码,在星期一,你修改了A文件中的代码,但是没有修改B文件中的代码,在星期二,你同时修改了A文件中的代码和B文件中的代码,在星期三,你只修改了B文件中的代码,没有修改A文件中的代码,如果你在星期三时想要获取到星期一时A文件和B文件中的代码,纯靠记忆恢复,几乎完全不可能,起码我是做不到的,如果让你手动实现版本管理,你会怎么做呢?如果是我,我只会用最笨的办法,就是每天早上开始工作之前,先拷贝一个副本出来,然后再将这个副本好好保存起来,以备不时只需。

好吧,我通过笨办法,每天创建一个副本,这样可以保证我可以通过文件系统中的日期,找到之前某一天的所有代码的状态,日积月累,我写的代码文件越来越多,我昨天备份的副本中有30多个目录,有80多个文件,看着这些代码文件,我的成就感油然而生,这时,我想要对比一下,昨天备份的副本与7天前备份的副本之间有哪些不同,我该怎么办呢?昨天的副本可能比7天前的副本多了一些文件(新增文件),同时又少了一些文件(删除文件),而且即使文件名相同,其中的内容也被修改过(编辑文件),其中的目录结构也可能发生过变化,我想要对比昨天的副本和7天前的副本,我到底该怎么做呢?好吧,我放弃了,光是想想,就让人觉得头大。

看来,我急需一款能够帮助我进行版本管理的软件,靠我聪明的脑子是没戏了。

我需要一款软件,能够在我需要时,帮助我"回到过去",把文件或目录恢复到之前的某个"状态",这个软件还能够让我对比文件或目录的"当前状态"和"过去的某个状态",甚至任意两个我想要对比的"状态",你可以把我这里所说的"状态"理解成我之前保存的"副本"。

我在互联网上搜索了一下,现在最流行的版本管理软件就是Git,而且经过了解我发现,Git能完美的解决我的问题,我现在苦恼的根本原因就是,怎样管理这些文件和目录的"状态",也就是笨办法中的"副本",Git就能化解我的苦恼,只不过,使用Git以后,我不需要再通过手动复制文件的方式创建副本了,Git能够通过另一种更加灵活方便的方式,让我们的文件和目录回到过去的任意一个"状态"。

好了,如果你跟我有一样的苦恼,那么让我们一起来由浅入深的使用git吧,下篇文章我们就开始动手安装git。

博主会将与Git有关的知识点总结到"通俗易懂Git入门系列"文章中,如果你对Git不是特别了解,请 按照顺序 阅读"Git系列",以便站在前文的基础上理解新的知识点。

我的微信公众号

关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~


以上所述就是小编给大家介绍的《Git之旅(1):版本管理,了解一下》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

jQuery 技术内幕

jQuery 技术内幕

高云 / 机械工业出版社 / 2014-1-1 / 99元

本书首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jQuery的工作原理有大致的印象;进而通过“构造 jQuery 对象”章节分析了构造函数 jQuery() 的各种用法和内部构造过程;接着详细分析了底层支持模块的源码实现,包括:选择器 Sizzle、异步队列 Deferred、数据缓存 Data、队列 Queue、浏览器功能测试 Support;最后详细分析了功能模块的源码实......一起来看看 《jQuery 技术内幕》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具