致谢
- 书名:Pro Git简体中文版
- 作者:Scott Chacon
- 出版社:Apress
虽然我看的是电子版,但还是得感谢作者的付出,谢谢!
基础要点:
-
直接快照,而非比较差异
Git
与其他版本控制系统的主要差别在于:Git
:只关心文件数据的整体是否发生变化SVN
:只关心文件内容的具体差异(如:那些文件更新了,都更新了哪些行的什么内容)Git
每次提交更新时会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。SVN
: -
近乎所有操作都可本地执行
Git
:绝大多数操作只需要访问本地文件和资源SVN
:差不多所有操作都需要联网Git
由本地数据库,可以直接读取本地数据库进行展示。
如果要查看差异,Git
会取出一个月前的快照和当前文件做一次差异计算,不必重新请求远程服务器。 -
时刻保持数据完整性
在保存前,
Git
都要进行内容的校验和计算,并将结果作为数据的唯一标识和索引。Git
使用SHA-1
算法计算校验和,通过对文件的内容或目录计算出SHA-1
哈希值,作为支付字符串:24b9da6552252987aa493b52f8696cd6d3b00373
实际上,所有保存在Git数据库的东西都是用此哈希值做索引,而不是靠文件名。
多数操作仅添加数据
一旦提交快照后就完全不用担心丢失数据,特别是在养成了定期推送至其他镜像仓库的习惯的话。-
三种状态
- 已提交(committed):该文件已经被安全地保存在本地数据库中了。
- 已修改(modified): 修改了某个文件,但还没有提交保存,没有放到暂存区域中。
- 已暂存(staged): 已修改的文件放在暂存区域中。
文件流转的工作区域:
- Git的本地数据目录
- 工作目录
- 暂存区域
基本的Git工作流程:
- 在工作目录中修改某些文件。
- 对这些修改了的文件作快照,并保存到暂存区域。
- 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。