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. Python的初步认识与基本模块的导入

    由于公司开发都使用了Python,老大说要每个人都会,前端也要学,所以就看着老大写的博客一步步来了,但是对于小白而言,一门新的语言总得跳许多坑.尤其是Mac安装Python,各种坑. 坑一.由于Mac ...

  2. ecshop和jQuery冲突

    这个问题看ecshop的论坛里有很多帖子,解决方案就好几种,但是有几个标注完美解决方案的需要更改很多文件,对于我们这种初学者出现了问题的话是不知道怎么调试的. 找到一个很简单的解决方案,论坛里说只能解 ...

  3. python flask(多对多表查询)

    我们在flask的学习中,会难免遇到多对多表的查询,今天我也遇到了这个问题.那么我想了好久.也没有想到一个解决的办法,试了几种方法,可能是思路的限制我放弃了,后来,我就在网上百度,可是发现百度出来的结 ...

  4. Tomcat中部署web应用 ---- Dubbo服务消费者Web应用war包的部署

    样例视频:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd IP: 192.168.2.61 部署容器:apache ...

  5. jquery元素是否可见(隐藏)

    var temp1=$(".view_hidden").is(":visible");//是否可见 var temp2=$(".elem_id&quo ...

  6. [leetcode-513-Find Bottom Left Tree Value]

    Given a binary tree, find the leftmost value in the last row of the tree. Example 1: Input:  2 / \ 1 ...

  7. Python3 从入门到出门

    引:此文是自己学习python过程中的笔记和总结,适合有语言基础的人快速了解python3和没基础的作为学习的大纲,了解学习的方向:笔记是从多本书和视频上学习后的整合版. (一)初识python 1. ...

  8. Perl初试

    通过接口发送短信的socket小样: #!/usr/bin/perl -w # auth:lichmama@cnblogs.com # what:send message to phone # usa ...

  9. 原生封装ajax

    01.声明一个全局变量 02.开始封装,判断参数 03.属性的var自定义 04.请求 01.请求行 02.请求头 03.请求发送 05.响应 01.事件监听onreadystatechange 02 ...

  10. poj 2299 Ultra-QuickSort 题解

    Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...