Git:SCM工具

Git是一款流行的分布式版本控制系统,以其简单、高效的设计深受开发者喜爱。Git仓库包括.git目录、工作目录和暂存区,文件存在已修改、已暂存和已提交三种状态。Git的内部使用对象图来表示版本历史,每个节点代表一个提交,HEAD指向当前版本。与传统VCS不同,Git以文件快照而非增量差异来保存信息,提高了效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      当我们谈论源代码管理时,Git 无疑是其中最受欢迎的一款工具。Git的设计理念是简单、高效、易于使用,这使得它在开源社区中迅速取得了成功。本文将详细介绍以下3个部分:1. Git仓库;2. Git中的对象图;3. Git与传统VCS的区别

1.Git仓库:Git repository

Git仓库分为以下三个部分:

.git directory(本地CMDB),用于存储所有版本控制的信息;

Working directory(工作目录),指代码仓库所在的目录,也就是我们在本地计算机上打开的文件夹。在工作区中,我们可以创建、修改和删除文件;

Staging Area(暂存区),指Git仓库中的一个特殊区域,用于存储待提交的修改。在使用"git add"命令后,修改的文件会被添加到暂存区中。当我们执行"git commit"命令时,暂存区中的文件会被提交到代码仓库中。

文件在Git仓库中的三个状态:

已修改(Modified),指文件在工作区中被修改过,但尚未被添加到暂存区的状态;

已暂存(Staged),指文件已经被添加到暂存区,并准备提交到代码仓库中的状态;

已提交(Committed),指文件已经被提交到代码仓库中,并且在代码仓库中被保存为一个新的版本。

2.Git中的对象图:Object Graph

      Git的核心是一个称为“对象图”的数据结构,一个由多种类型的节点组成的有向无环图,它们通过指针连接。Git使用对象图来表示项目版本演化的历史。一条边 A->B表征了“在版本B的基础上作出变化,形成 了版本A”。

历史图中的每个节点node都是一个提交commit,也就是项目的修订版本:该时间点所有文件的完整快照snapshot。其中,HEAD指向当前的commit版本,除初始节点以外每个节点指向其父亲节点,多个 commit指向同一个父亲代表分支,一个commit 指向两个父亲代表合并。

3.Git与传统VCS的区别

 

Git 和传统版本控制系统的主要差别在于 Git 对待数据的方法。 传统大部分系统以文件变更列表的方式存储信息。 这类系统重视增量差异,将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。而在Git中,每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值