Git

Git的特点:

  • Git存储的是文件快照, 即整个文件内容, 并保存指向快照的索引
  • 分布式

原理

这个之前面试实习的时候被问到过, 搞懂基本原理还是很重要的

Git的目录结构在执行git init后文件夹下的.git目录

子目录名 简要描述
branches Git项目分之信息
condig Git项目配置信息
description Git项目描述信息
HEAD 指向Git项目当前分支的头指针
hooks 默认的hooks脚本, 指Git项目要忽略的文件
objects 数据对象, 有: commit, trees, blobs, tags
refs 指向所有分支的指针

快照原理

Git通过对文件进行SHA-1计算作为文件的内容生成一个40位的Hash值, Hash值相同, 则文件内容相同

存储区

git的四个存储区

  • 工作区
  • 暂存区
  • 本地仓库
  • 远程仓库

  • git add file 就是把文件添加到暂存区
  • git commit -m "说明" 提交更改, 就是把暂存区的所有内容提交到本地仓库, 即当前分支, git会自动创建一个master分支

暂存区的好处:

  • 能够实现部分提交
  • 为了不在工作区创建状态文件, 污染工作区
  • 暂存区记录了文件的的修改时间, 提高文件的比较效率

分支

git速度比较快的原因是分支就是一个指向Commit的指针, 每次提交, 只需要移动这个指针就行了

Git的一些知识的更多相关文章

  1. 程序员必知必会Git的小知识

    单人开发 1.初始化一个仓库 git init //cd到你工作的文件夹,初始化git仓库,默认会生成.git隐藏目录 2.配置自己的信息(Git 不喜欢不愿透漏姓名的人) git config -- ...

  2. git github简单知识

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...

  3. Git入门——基础知识问答

    问题一:为什么要选择Git作为Android开发的版本控制工具?     答:1)git是android项目和社区的统一语言.            2)高通版本发布频繁,需要与平台及时同步,快速re ...

  4. Git的相关知识

    什么是git        Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Lin ...

  5. git 的相关知识

    参考文章 git checkout HEAD <file> :  master/HEAD -> index -> work directory index 暂存区有两行信息.分 ...

  6. GIt的基本知识

    以前已经把git 看过一遍了,由于好久没有用它 ,现在已经忘了.现在呢,要用它进行同步代码,所以呢,我打算记一记,再复习复习. 参考文件:https://git-scm.com/book/zh/v2 ...

  7. [工具] Git版本管理(知识总结)

    对以下文档进行了简要总结,方面复习: [工具] Git版本管理(一)(基本操作) [工具] Git版本管理(二)(分支) [工具] Git版本管理(三)(工作流) [工具] Git版本管理(四)(贡献 ...

  8. git的基础知识

    git 分布式版本控制工具 具备的功能 协同开发 多人并行不悖修改服务器端的同一个文件 数据备份 不仅保持目录和文件当前状态,还能保存每一个提交的历史版本 版本管理 保存每一个版本的文件信息的时候做到 ...

  9. 认识Git并了解Git的基本知识

    目录 认识Git 版本控制 版本控制的发展史 安装Git Git的核心概念 Git的使用原理 Git的工作流程 Git的基本流程 Git与SVN的区别 Git的基本使用 初始化Git 创建一个Git仓 ...

随机推荐

  1. 什么是nginx?

    1.nginx是一款服务器软件 2.nginx是一个高性能的HTTP和反向代理服务器: 3.nginx是一个代理邮件服务器: 4.nginx还可以实现负载均衡: nginx的优缺点: 优点:可以实现高 ...

  2. ecshop商品页增加编辑器fckeditor

    最近在做ecshop的项目,需要在商品单页中增加一项FCKEditor的文本编辑器,但在ecshop的论坛和百度里搜出的方法,试了好几个都没有用,终于找到一个可以正确使用的,和大家分享. ecshop ...

  3. Kubernetes服务之StatefulSets简介

    StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性.PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets ...

  4. promise(3) '静态'方法

    要是人没有梦想,跟咸鱼又有什么两样了?一直恐惧读源码,哪怕是一个简单的库也是读百来行遇到难点就放弃了.对于新的东西也仅仅是知道它拿来干什么,社区资源在哪里,要用时就突击文档资源使用即可.未有过深入之心 ...

  5. docker - 启动container时出现 [warning] : ipv4 forwarding is disabled. networking will not work

    起因 今天在一台新的centos宿主机上安装docker,由于关闭了iptables,在此之后启动container的时候会出现警告: WARNING: IPv4 forwarding is disa ...

  6. JAVAEE——spring02:使用注解配置spring、sts插件、junit整合测试和aop演示

    一.使用注解配置spring 1.步骤 1.1 导包4+2+spring-aop 1.2 为主配置文件引入新的命名空间(约束) 1.3 开启使用注解代替配置文件 1.4 在类中使用注解完成配置 2.将 ...

  7. RabbitMQ系列教程之四:路由(Routing)

    (使用Net客户端)在上一个教程中,我们构建了一个简单的日志系统,我们能够向许多消息接受者广播发送日志消息.在本教程中,我们将为其添加一项功能 ,这个功能是我们将只订阅消息的一个子集成为可能. 例如, ...

  8. 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

    今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...

  9. 在MacOS中,Unity使用VSCode开发,4.7版本无法正常使用C#

    我在MacOS中安装了两个版本的Unity,一个是4.7版本,一个是5.6版本,在5.6版本中使用VSCode打开项目时,可以正常代码提示和查看,但是打开4.7版本的项目时,无法正常提示和查看. 经过 ...

  10. 关于STM32单片机的IAP实现

    基于STM32F103单片机的IAP实现(虽然该篇文章不会详细写出实现细节,但是会从一个全局的角度讲述,实际的实现细节只需根据datasheet即可完成). 一.基础概念 什么是IAP?IAP即在应用 ...