猴子都能看懂的 GIT 入门

今天来讲讲版本管理系统「Git」哦。

要把文档还原到编辑前的状态,大家都是怎么做的呢?

最简单的办法就是先备份编辑前的文档。使用这个方法时,我们通常都会在备份的文档名或者目录名上添加编辑的日期。但是,每次编辑文档都要事先复制,这样比较麻烦,也容易出错。

再加上,如果像上图那样毫无命名规则的话,就无法区分哪一个文档是最新的了。而且,如果是共享文件的话,应该加上编辑者的名字。还有,那些文档名字没有体现修改内容。

另外,如果两个人同时编辑某个共享文件,先进行编辑的人所做的修改内容会被覆盖,相信大家都有这样的经历。

Git 版本管理就是为了解决这些问题应运而生的。

使用 Git 进行版本管理

Git 是一个分布式版本管理系统,是为了更好地管理 Linux 内核开发而创立的。

Git 可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异。

而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容。

⚠️ 要点:用 Git 管理文件的话,更新的历史会保存在Git ,所以不需要备份文件啦。非常方便!

管理历史记录的数据库

数据库 (Repository) 是记录文件或目录状态的地方,存储着内容修改的历史记录。在数据库的管理下,把文件和目录修改的历史记录放在对应的目录下。

⛱远程数据库和本地数据库

首先,Git 的数据库分为远程数据库和本地数据库的两种。

远程数据库: 配有专用的服务器,为了多人共享而建立的数据库;

本地数据库: 为了方便用户个人使用,在自己的机器上配置的数据库。

数据库分为远程和本地两种。平时用手头上的机器在本地数据库上操作就可以了。如果想要公开在本地数据库中修改的内容,把内容上传到远程数据库就可以了。另外,通过远程数据库还可以取得其他人修改的内容。

⛱创建数据库

创建本地数据库的方法有两种:一种是创建全新的数据库,另一种是复制远程数据库。

修改记录的提交

若要把文件或目录的添加和变更保存到数据库,就需要进行提交。

执行提交后,数据库中会生成上次提交的状态与当前状态的差异记录(也被称为revision)。

如下图,提交是以时间顺序排列状态被保存到数据库中的。凭借该提交和最新的文件状态,就可以知道过去的修改记录以及内容。

系统会根据修改的内容计算出没有重复的40位英文及数字来给提交命名。指定这个命名,就可以在数据库中找到对应的提交。

Tips(小贴士 ):不同类别的修改 (如:Bug 修复和功能添加) 要尽量分开提交,以方便以后从历史记录里查找特定的修改内容。

执行提交时,系统会要求输入提交信息。请务必输入提交信息,因为在空白的状态下执行提交会失败的。

查看其他人提交的修改内容或自己的历史记录的时候,提交信息是需要用到的重要资料。所以请用心填写修改内容的提交信息,以方便别人理解。

以下是 Git 的标准注解:

第1行:提交修改内容的摘要第2行:空行第3行以后:修改的理由

请以这种格式填写提交信息。

工作树和索引

在 Git 管理下,大家实际操作的目录被称为工作树。

在数据库和工作树之间有索引,索引是为了向数据库提交作准备的区域。

Git 在执行提交的时候,不是直接将工作树的状态保存到数据库,而是将设置在中间索引区域的状态保存到数据库。因此,要提交文件,首先需要把文件加入到索引区域中。

所以,凭借中间的索引,可以避免工作树中不必要的文件提交,还可以将文件修改内容的一部分加入索引区域并提交。

Git 背后的哲学思维和我们的日常协作模式是共通的,所以我们应该知道插队对一个系统带来的恶劣影响。

系统的崩坏,可能就是那么一瞬。

未完待续

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180928G012E000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券