Git与Github

本文介绍了Git作为分布式版本控制系统的优势,包括本地与集中化的版本控制系统对比,重点阐述了Git的基本思想和工作流程,如文件的三种状态和工作区的三个区域。此外,详细列举了Git的基本指令,包括初始化仓库、暂存与提交文件、查看状态、提交历史以及远程仓库的操作。最后,探讨了Git的分支管理和其在协同开发中的价值。
摘要由CSDN通过智能技术生成

一、本地vs分布式版本控制系统

1. 本地版本控制系统

采用简单的数据库或文件系统来记录本地文件的历次更新差异。

2. 集中化的版本控制系统

有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的开发者通过客户端连到这台服务器,取出最新的文件或者提交更新。缺陷:单点故障,可靠性问题。

3. 分布式版本控制系统

客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。

任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。

每一次的提取操作,实际上都是一次对代码仓库的完整备份。

二、Git的基本思想

其他大多数SCM系统则关心文件内容的具体差异(每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容)Git关心文件数据的整体是否发生变化,并不保存这些前后变化的差异数据。

1. 把变化的文件作快照后,记录在一个微型的文件系统中。

2. 每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。

3. 为提高性能,若文件没有变化,Git不会再次保存,而只对上次保存的快照作一链接。

$pic1


对于任何一个文件,在Git内都只有三种状态:

1. 已提交(committed):表示该文件已经被安全地保存在本地数据库中;

2. 已修改(modified):表示修改了某个文件,但还没有提交保存;

3. 已暂存(staged):表示把已修改的文件放在下次提交时要保存的清单中。

Git管理项目的三个工作区域:

1. Git目录(仓库)

2. 工作目录

3. 暂存区域

$pic2


Git的工作区

 每个项目都有一个Git目录(Git directory),用来保存元数据和对象数据库。每次clone镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

 从Git目录中取出某个版本的所有文件和目录,用以开始后续工作,形成工作目录(working directory),接下来就可以在工作目录中对这些文件进行编辑。

 暂存区域(staging area):本质上是一个文件,保存了下次将要提交的文件列表信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值