致谢

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

基础要点:

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

    Git每次提交更新时会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。

    SVN:
    图片描述
    图片描述

  2. 近乎所有操作都可本地执行
    Git:绝大多数操作只需要访问本地文件和资源
    SVN:差不多所有操作都需要联网

    Git由本地数据库,可以直接读取本地数据库进行展示。
    如果要查看差异,Git会取出一个月前的快照和当前文件做一次差异计算,不必重新请求远程服务器。

  3. 时刻保持数据完整性

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

    24b9da6552252987aa493b52f8696cd6d3b00373

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

  4. 多数操作仅添加数据
    一旦提交快照后就完全不用担心丢失数据,特别是在养成了定期推送至其他镜像仓库的习惯的话。

  5. 三种状态

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

    文件流转的工作区域:

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

    基本的Git工作流程:

    1. 在工作目录中修改某些文件。
    2. 对这些修改了的文件作快照,并保存到暂存区域。
    3. 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。

Chao
127 声望1 粉丝