Git 学习笔记 01:什么是 Git?

2020.10.30

Git 是目前世界上最先进的分布式版本控制系统(没有之一)。

这话是 廖雪峰 说的,看起来很厉害,但有点难懂。

  • 什么是「版本控制系统」?
  • 「分布式」又是什么意思?

如果你想知道 Git 到底是什么?有什么用? 还得从上面这两个陌生的概念入手。

版本控制系统

作为一个文字工作者,我可以很肯定地说:好文章是改出来的

一篇文章,从写完到发表,通常要经过多次的修改和打磨。小到标点符号,大到文章结构和情节、案例,都可能发生变化。所以,文章的初稿(第一版)和成稿(最终版)之间,往往存在着若干个修改版本。这便引发了几个问题:

  1. 明明是一篇文章,却需要保存多个不同版本的文件,桌面一片凌乱;
  2. 想知道改了什么内容,只能一个个文件去查看,很是麻烦。

如果有一个工具,让你只须保留一个文件,它来负责记录你对文件的历次改动,还能跟别人协作编辑,岂不是很省心?

版本 文件名 用户 说明 日期
1 写作计划.md 许仙人 增加了时间表 10/5 9:13
2 写作计划.md 卢奶奶 删除了每日计划 10/5 10:22
3 写作计划.md 许仙人 增加了完成奖励 10/5 13:40

Git 这个「版本控制系统」,干的就是这种活。但请注意哦,Git 不是所有文件类型都搞得定,它只服务文本文件,如 txt、Markdown 和各种代码,其他的非文本文件,就超出 Git 的服务范围了。

分布式和集中式

版本控制系统,主要分成两种类型:

  1. 分布式:Git、BitKeeper
  2. 集中式:CVS、SVN

两者的最大区别,在于版本库的存放位置

  • 如果系统为集中式,就会有一个中央服务器,你的版本库都保存在它那里。假设你新修改了一个版本,想共享给同事,先得把新版文件发送给服务器,同事再去服务器那里提取。如果文件很大,网速又很慢的话,那就慢慢等吧……
  • 如果系统为分布式,就没有中间人赚差价,你的版本库保留在自己电脑上,不联网就能使用。文件修改完之后,也不用上交给管理员。在有网络的前提下,同事可以直接上你这儿取,少了一个中间环节,速度自然更快。

此外,两者在文件安全性方面也有点差异:

  • 集中式系统,版本库存放在中央服务器上,一旦服务器出问题,你的版本库就无法访问了。
  • 分布式系统,版本库存放在你和协作者的电脑上,万一你的电脑坏了,还可以去协作者的电脑里拿。

如果你的文本项目需要反复修改,并跟其他人协作的话,Git 将会是一个非常好的选择。

具体怎么使用?下篇文章再见👋