Jos's Blog - git
type: channel
link: https://blog.bbcking5.com/tag/git/
items: Git之旅(1)：版本管理，了解一下

Git之旅(1)：版本管理，了解一下
type: item
date: 2021-05-25T13:43:21+08:00
description: 在这里，会循序渐进的总结跟git相关的一些概念与操作，这些文章都是新手向的，由浅入深，以便自己回顾，也方便他人参考。既然是新手向的，我们就从头开始聊吧，了解过git的朋友就不用看了。先来说说我用笨办法进行版本管理的一些经历···我创建了一个文件，test.txt，我在这个文件中写入了一行文本，文本如下$ cat test.txtabcdefg如你所见，文件中只有一行字母。现在，我又在这个文件中瞎写了一行数字。$ cat test.txtabcdefg1234567此时，文件中有两行文本了，但是，我突然又不想要第二行数字了，我想让这个文件中的文本回到上一个状态，就是说，我想让文件回到只有第一行字母的状态，怎么办呢？最简单的办法就是把第二行给删了，没错，这样做完美的解决了我的问题，但是，我之所以能这样做，就是因为文本太少，改动也太少，所以，很容易就让文件变回了之前的某个状态，但是如果文件中的文本有几百行，我改了其中的几十，当我再想回到修改几十行之前的状态，就麻烦了，因为我可能已经忘记了我修改了哪些地方，所以，保险的办法是我应该在修改之前，将文件拷贝出一个副本，然后再去修改，这样，无论我修改了多少行，无论我修改了多少次，就都能够回到备份时的状态了。上述过程只是针对一个文件的版本管理，在实际使用的过程中，我们经常需要对一堆文件进行管理，这些文件之前通常还有关联关系，比如，你将一段代码写到了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系列”，以便站在前文的基础上理解新的知识点。转载自朱双印日志https://www.zsythink.net/archives/3290