黑帽联盟

标题: Git之旅(1):版本管理,了解一下 [打印本页]

作者: 定位    时间: 2020-4-2 14:13
标题: Git之旅(1):版本管理,了解一下
在这里,会循序渐进的总结跟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。



转载自互联网大佬,感谢撰写好文章





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5