0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Git是什么 Git介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-22 10:50 次阅读

git 是什么?

Git 诞生于 2005 年,是一款免费、开源、分布式版本控制系统

直接记录快照,而非差异比较

Git 和其它版本控制系统的主要差别在于 Git 对待数据的方式。

其它大部分系统以文件变更列表的方式存储信息,这类系统(CVS、Subversion等)将它们存储的信息看作是一组基本文件和每个文件随时间逐步累积的差异
(基于差异的版本控制)。

图片

Git 不按照以上方式对待或保存数据。反之,Git 更像是把数据看作是对小型文件系统的一系列快照。

在 Git中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。为了效率,如果文件没有修改,Git
不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git 对待数据更像是一个快照流。

图片

这是 Git 与几乎所有其它版本控制系统的重要区别。

近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。

如果你习惯于所有操作都有网络延时开销的集中式版本控制系统,Git 在这方面会让你感到速度之神赐给了 Git
超凡的能量。因为你在本地磁盘上就有项目的完整历史,所以大部分操作看起来瞬间完成。

Git 保证完整性

Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。

Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。这是一个由 40 个十六进制字符(0-9 和 a-f)组成的字符串,基于 Git
中文件的内容或目录结构计算出来。SHA-1 哈希看起来是这样:

24b9da6552252987aa493b52f8696cd6d3b00373

Git 中使用这种哈希值的情况很多,你将经常看到这种哈希值。实际上,Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。

Git 一般只添加数据

你执行的 Git 操作,几乎只往 Git 数据库中添加数据。你很难使用 Git 从数据库中删除数据,也就是说 Git
几乎不会执行任何可能导致文件不可恢复的操作。

同别的 VCS 一样,未提交更新时有可能丢失或弄乱修改的内容。但是一旦你提交快照到 Git 中,
就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。

三种状态

Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified) 和 已暂存(staged)

已修改表示修改了文件,但还没保存到数据库中。

已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。

图片

工作区是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。按照 Git
的术语叫做“索引”,不过一般说法还是叫“暂存区”。

Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。这是 Git
中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

基本的 Git 工作流程如下:

在工作区中修改文件。

将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。

提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    6622

    浏览量

    110622
  • 数据
    +关注

    关注

    8

    文章

    7045

    浏览量

    89059
  • Git
    Git
    +关注

    关注

    0

    文章

    200

    浏览量

    15768
收藏 人收藏

    评论

    相关推荐

    Git常用的超级实用命令

    Git作为最流行的代码版本控制工具,基本上已经成为了程序员的一个标配技能。无论使用GitHub,GitLib,Gitee等进行代码托管,均基于Git。下面聊一聊开发人员必会的几个Git技巧和团队协作
    的头像 发表于 10-09 17:19 1168次阅读
    <b class='flag-5'>Git</b>常用的超级实用命令

    git命令的基本使用

    git config 第一次使用git或者刚安装的git时,使用此命令设置身份Name 和 Eamail 地址。并且每次提交时会使用此信息。
    的头像 发表于 12-11 13:53 916次阅读

    Pro_Git中文版

    代码版本管理软件GIT的详细使用教程,GIT上手比较慢,不看资料很难上手
    发表于 07-20 17:21 0次下载

    Git是什么?Git的基本使用资料说明

      Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。
    发表于 05-29 17:56 1次下载
    <b class='flag-5'>Git</b>是什么?<b class='flag-5'>Git</b>的基本使用资料说明

    腾讯是如何使用Git

    那么,切换到 git 来维护代码仓库,会对我们的日常开发造成影响吗?答应是显然的,首先我们需要学习 git 的基本概念与用法,然后就需要我们在具体的项目实践过程中打磨我们的 git 使用技巧
    的头像 发表于 08-10 15:02 2504次阅读
    腾讯是如何使用<b class='flag-5'>Git</b>?

    Git的参考手册教程免费下载

    在使用Git前我们需要先安装 GitGit 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
    发表于 09-21 08:00 1次下载
    <b class='flag-5'>Git</b>的参考手册教程免费下载

    Git 命令+原理 程序员必备的基础

    掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~ 文章目录
    的头像 发表于 11-14 10:01 1760次阅读
    <b class='flag-5'>Git</b> 命令+原理 程序员必备的基础

    git 总结

    一、git代码拉取@TOC1.获取代码地址:EP33: recursive ssh://172.29.169.30:29418/MCU/SCC -b v2.0-saic-ep332.步骤:&
    发表于 12-08 11:21 10次下载
    <b class='flag-5'>git</b> 总结

    Git权威指南

    Git管理资料,方便大家学习git知识
    发表于 06-29 14:15 0次下载

    利用Learn Git Branching轻松学习Git

    Git作为世界上最流行的版本控制系统,可以说是每一位与程序打交道的朋友最值得学习的软件之一。除了管理自己的项目,如果你对参与开源项目感兴趣,那么Git更是联结Github、Gitlab等知名代码项目
    的头像 发表于 09-15 14:53 1580次阅读

    Git的使用

    Git的使用
    的头像 发表于 01-10 16:45 949次阅读

    git rebase与相关git merge命令比较

      #前言     git rebase命令经常被认为是Git的巫术,初学者应该远离它,但它实际上可以让开发团队在使用时更加轻松。今天,我们将git rebase与相关git merg
    的头像 发表于 05-26 16:22 887次阅读
    <b class='flag-5'>git</b> rebase与相关<b class='flag-5'>git</b> merge命令比较

    git rebase和git merge的区别

      解决冲突 git rebase和git merge的区别 分支合并 git merge是用来合并两个分支的。 比如:将 b 分支合并到当前分支。 同样git rebase b,也是
    的头像 发表于 07-05 09:54 643次阅读
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的区别

    Git命令的综合手册怎么找

    若你使用 Git 时需要获取帮助,有三种等价的方法可以找到 Git 命令的综合手册(manpage): $ git help $ git -- help $ man
    的头像 发表于 07-22 11:02 648次阅读

    git基本操作命令用法

    基本用法 上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。 git add files把当前文件放入暂存区域。 git commit给暂存区域生成快照并提交。 git reset
    的头像 发表于 09-13 16:29 789次阅读
    <b class='flag-5'>git</b>基本操作命令用法