Git:分布式版本控制系统

本文最后更新于 2025年6月25日 下午

考完了这学期的期末考试,算是有了一小段空闲时间(大概一周左右),突然想到之前的Git学习还没结束,学习笔记也停了好久,遂浅浅写一篇随笔并继续我的Git学习。

一、Git是什么?

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Linus Torvalds(Linux内核的发明者)称其为“The stupid content tracker”,傻瓜式内容跟踪器。

对于版本控制,Git采用记录文件的改动的方式来记录版本,而不是每个版本都保存一份完整的备份。例如,在文件的第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”,Git就会把这些改动记录下来。

不过目前为止,暂时只能跟踪文本文件的改动,比如TXT文件,网页文件,所有的程序代码等等。不幸的是,Word文档的格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。如果你实在想要利用Git来管理你的Word论文,也不是没有办法,我的一个想法是,可以先用文本文件写论文,图片暂时用文字替代一下,等写完后再全部放到Word中处理格式,听起来有点像写Markdown啊…

值得学习的是,这种利用局部改动特性的思想。如果你需要写长篇大论的文章,有时候想删除一个段落继续写,又怕将来想恢复找不回来,你会怎么办,或者说怎么去备份呢?一般人可能会这么做,先把当前文件“另存为……”一个文件,再接着改,改到一定程度,再“另存为……”一个文件,这样下去不仅浪费了大量的存储空间,而且文件数量越来越多,难以管理。

这种思想其实在很多领域都有影子,作为一个CSer,我所了解的就有版本控制、增量备份/快照、日志记录、数据库变更等等。

对于分布式,与集中式相对,Git的分布式特性使得开发者间的协作变得更加灵活多样。我就不详细介绍了,关于分布式我只想吐槽为什么不把“distributed”翻译的更浅显易懂一些,叫“分布式”真是让初学者摸不着头脑,什么听起来高大上的玩意,搞的我当初接触这个概念的时候以为是什么高深技术,一般人学不会的那种,现在看来真是误人子弟

二、学习Git

我就不介绍各种命令该怎么用了,相比官方文档,我只有献丑之技。分享一下目前为止我个人的学习经验和避坑指南:

推荐去官方网站学习,在官方文档Documentation中,不仅可以通过man pages学习具体命令(大部分命令点进去后可以通过右上角区域选择中文,对英语不太好的朋友非常友好),而且可以免费获取官方的书,叫Pro Git,对Git有一个非常详细的介绍,这里奉上中文版链接https://git-scm.com/book/zh/v2,可以下载下来慢慢阅读。

如果你需要的是快速入门,那么你可以去看看廖雪峰的Git教程

我不太推荐去CSDN学习Git,具体原因就不展开说了,毕竟CSDN的吃相太难看了,风气也难评,学点琐碎的勉强还行,Git学习还是别在CSDN上浪费时间了(相比上面的学习路径),有官方文档或者优质教程的尽量去看官方文档和优质教程。

三、一些Git学习记录

  • 2024-07-10:下载Git,开始使用git clone命令

  • 2025-04-05:发现除了git clone命令外就不会Git了,于是开始学习Git

  • 2025-04-07:到目前(2025-04-07)为止已经学习完了(git) config, init, clone, add, commit, status, diff, log等命令,还有工作目录、暂存区域以及Git仓库的概念,但由于其他事情暂停Git的学习

  • 2025-06-24:继续Git的学习,又学习了(git) rm, mv, reset, checkout, reflog等命令

  • 2025-06-25:学习了HEAD、Index和Working Directory这三个区域的概念,以及(git) reset, checkout是如何操纵这三个区域的


Git:分布式版本控制系统
https://logicff.github.io/2025/06/24/git/
作者
logicff
发布于
2025年6月24日
许可协议