ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] git理论(SourceTree:拥有可视化界面的项目版本控制软件,适用于git项目管理) ![](https://img.kancloud.cn/79/f4/79f4fe00bebaaaa71a7146c2d80f3ff1_1024x480.png) >[info] git特点 1. 分布式 2. 不需要联网 3. (push)提交到本地仓库 -> 推送到中央仓库 **直接记录快照,而非差异比较:** ***** **近乎所有操作都是本地执行:** ***** **Git 保证完整性** ***** **Git 一般只添加数据** 现在请注意,如果你希望后面的学习更顺利,请记住下面这些关于 Git 的概念。 Git 有三种状态,你的文件可能处于 其中之一:**已提交(committed)、已修改(modified) 和 已暂存(staged)。** * 已修改表示修改了文件,但还没保存到数据库中。 * 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。 * 已提交表示数据已经安全地保存在本地数据库中。 >[info] 关于版本控制 什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修 订情况的系统。 在本书所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。 ***** 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥 有的功能),采用版本控制系统(VCS)是个明智的选择。 有了它你就可以将选定的文件回溯到之前的状态,甚至将 整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导 致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一 气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。 >[info] 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好 处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。 ***** 为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的 历次更新差异。 ***** ![](https://img.kancloud.cn/7d/7b/7d7b3e2ceee16726b7704b5e17dd5a9d_1036x885.png) ***** **Figure 1. 本地版本控制:** 其中最流行的一种叫做 RCS,现今许多计算机系统上都还看得到它的踪影。 RCS 的工作原理是在硬盘上保存补丁集 (补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。 >[info] 集中化的版本控制系统 接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作? 于是,集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个 单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的 文件或者提交更新。 多年以来,这已成为版本控制系统的标准做法。