Git Pro读书笔记-1-概念

致谢

  • 书名:Pro Git简体中文版
  • 做者:Scott Chacon
  • 出版社:Apress
    虽然我看的是电子版,但仍是得感谢做者的付出,谢谢!

基础要点:

  1. 直接快照,而非比较差别
    Git与其余版本控制系统的主要差异在于:
    Git只关心文件数据的总体是否发生变化
    SVN:只关心文件内容的具体差别(如:那些文件更新了,都更新了哪些行的什么内容)git

    Git每次提交更新时会纵览一遍全部文件的指纹信息并对文件做一快照,而后保存一个指向此次快照的索引。算法

    SVN:
    图片描述
    图片描述数据库

  2. 近乎全部操做均可本地执行
    Git:绝大多数操做只须要访问本地文件和资源
    SVN:差很少全部操做都须要联网安全

    Git由本地数据库,能够直接读取本地数据库进行展现。
    若是要查看差别,Git会取出一个月前的快照和当前文件作一次差别计算,没必要从新请求远程服务器。服务器

  3. 时刻保持数据完整性spa

    在保存前,Git都要进行内容的校验和计算,并将结果做为数据的惟一标识和索引。
    Git使用SHA-1算法计算校验和,经过对文件的内容或目录计算出SHA-1哈希值,做为支付字符串:版本控制

    24b9da6552252987aa493b52f8696cd6d3b00373code

    实际上,全部保存在Git数据库的东西都是用此哈希值作索引,而不是靠文件名。索引

  4. 多数操做仅添加数据
    一旦提交快照后就彻底不用担忧丢失数据,特别是在养成了按期推送至其余镜像仓库的习惯的话。图片

  5. 三种状态

    • 已提交(committed):该文件已经被安全地保存在本地数据库中了。
    • 已修改(modified): 修改了某个文件,但尚未提交保存,没有放到暂存区域中。
    • 已暂存(staged): 已修改的文件放在暂存区域中。

    文件流转的工做区域:

    • Git的本地数据目录
    • 工做目录
    • 暂存区域

    基本的Git工做流程:

    1. 在工做目录中修改某些文件。
    2. 对这些修改了的文件做快照,并保存到暂存区域。
    3. 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。
相关文章
相关标签/搜索