1.版本控制系统介绍
版本的概念最早在印刷行业出现,由于编辑、印刷不同而衍生出不同样式和内容,产生了不同的成品,这就是版本。
版本控制技术是一种可以记录一个或多个文件在修改过程中的变化,使得后续可以查阅文件的历史版本的技术。
当一个项目的代码量达到一定规模时,对源代码的管理难度和重要性也会随即增加。使用版本控制可以有效地管理和维护软件的项目开发,因其保存了从项目研发开始到结束的所有历史提交和修改记录。
版本控制系统分为两类:集中式版本控制系统、分布式版本控制系统
集中式版本控制系统是指软件项目的所有代码的修改和提交都存储在一台中央服务器,本地的版本控制系统只保存最新的文件快照,所以每位开发人员在开始工作前,必须要从中央服务器同步最新的项目版本数据信息来避免版本冲突。集中式版本控制系统的缺点就是对中央服务器的依赖性很高,中央服务器的单点故障将会带来严重的后果。如果中央服务器出现宕机,所有人都无法进行文件更新的提交;如果中央服务器的硬盘出现损坏,那么就可能永久性地丢失所有的存储信息。
与集中式版本控制系统相对应的是分布式版本控制系统,这是指每个参与者都在本地有自己的版本库,而且也没有中央服务器,对代码的修改信息除了保存在远程仓库,每个参与者在本地都有自己的一份完整的镜像文件,即使服务器出现了巨大的损坏,也可以通过镜像文件进行恢复,而且,同时也支持着离线工作。
2.什么是git?
Git是一种典型的分布式版本控制系统,为了更好地管理Linux内核,在2005年由Linus Torvalds首次提出。Git具有使用简便、开源、速度快、保护数据完整性的特点,并且提供了对非线性开发模式的支持,有强大的分支管理能力,允许上千个分支同步并行开发,分支的开发不影响主分支。首先,软件项目的开发过程可能会经常出现功能和性能上的问题,漏洞是可追溯的,出现在某些版本中。使用Git的分支管理功能,通过检查不同版本,定位版本的漏洞的位置,再对这个版本的漏洞进行修复。其次,可以利用一个新的创建分支对软件进行测试性修改,用来验证本文设计的新算法是否可以让文中的软件项目给用户带来更好的使用体验,最后,可以利用Git的分支管理功能在不同的分支上给软件设计不同的功能,因此各个功能相互独立,如果后续研发中不再需要此项功能,可以回退到之前的版本,其它的功能分支也不会因此受到影响。Git采用快照模式,也就是说Git记录数据在某个时间点的映像,而不是记录提交前后数据的具体差异,并且采用校验和压缩,因此恢复起文件来要更为快速。Git再通过SHA-1算法对数据内容进行校验和计算,并将结果作为数据唯一的标识,所以,Git可以检测得到任何数据的修改和删除,这保证了数据的完整性。Git凭借自身的卓越性能,已广泛地应用于众多的著名开源项目,如Ruby on Rails、Perl、Eclipse等,是大型项目开发的首选工具。
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
3.git安装及git本地仓库的搭建与使用
3.1 安装git
3.2 git本地仓库的搭建与使用
获取 Git 仓库通常有两种方式:
将尚未进行版本控制的本地目录转换为 Git 仓库。
从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone
- git status的状态显示分类
标记 | 释义 |
---|---|
?? | 新添加的未跟踪文件 |
A | 新添加到暂存区中的文件 |
M | 修改过的文件 |
右边的 M | 该文件被修改了但还没放入暂存区 |
左边的 M | 该文件被修改了并放入了暂存区 |
MM | 工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录 |
(1)初始化版本库
创建本地仓库,并且初始化
mkdir demo ##创建的版本库名字为demo
cd demo/
git init ##在版本库目录下进行初始化
.git目录是git跟踪管理版本库的,没事别瞎溜达!
(2)添加用户信息
设置用户名和邮件地址,每次Git提交都会附带这些信息,是仓库所有者的标签