Presentation is loading. Please wait.

Presentation is loading. Please wait.

Git 151220114 王宇鑫.

Similar presentations


Presentation on theme: "Git 151220114 王宇鑫."— Presentation transcript:

1 Git 王宇鑫

2 历史 01 02 特性 CONTENT 目录 >> 03 方法论 04 原理

3 历史

4 版本控制 发展历程 经典计算机的数据是可以轻易复制的 同时,也能够轻易消去 由于修改文件造成数据的丢失,大家学会了版本控制

5 版本控制 发展历程 重复的工作应该抽象成指令集,交由计算机做 RCS

6 Centralized Version Control Systems
版本控制 发展历程 分工合作的需求逐渐增加 Centralized Version Control Systems

7 版本控制 发展历程 对数据访问、数据存储可靠性要求增加 牺牲空间 .git/
Distributed Version Control System

8 Git Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统BitKeeper 来管理和维护代码。 到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用BitKeeper 时的经验教训,开发出自己的版本系统。 《progit》page 11 速度 简单 并行开发 分布式 鲁棒性

9 特性

10 存储方式 记录变更

11 存储方式 快照

12 更多 本地执行 哈希校验 +而不是- 状态机 由于.git存储了整个数据库,所以不需要联网 保证数据库完整性
删除文件是添加一个新的快照,而不是真的删除文件 状态机 Committed Modified Staged Untracked

13 状态机 Git add Git add Git rm Git commit

14 分支

15 分支

16 分支

17 分支

18 分支 开销极低

19 一般的企业防火墙都会允许这些端口的数据通过。
远程仓库 git clone --bare <p> <p>.git cp -r <p>/.git <p>.git local 从文件系统读取 某些情况简单 某些情况复杂 ssh 利用ssh服务 简单、读写均可 难以控制权限 git Git协议守护进程 速度快 难以控制权限 http http协议 HTTP/S 协议被广泛使用 一般的企业防火墙都会允许这些端口的数据通过。

20 方法论

21 最简单的方法

22 流水线

23 集中式工作流

24 集成管理者工作流

25 司令官与副官工作流

26 典型场景

27 原理

28 Git 对象 Git 是一个内容寻址文件系统 { hash: content, … }
echo 'test content' | git hash-object -w –stdin d670460b4b4aece5915caf5c68d12f560a9fe3e4 git cat-file -p d670460b4b4aece5915caf5c68d12f560a9fe3e4 test content find .git/objects –type f .git/objects/d6/70460b4b4aece5915caf5c68d12f560a9fe3e4

29 树对象 Git 以一种类似于 UNIX 文件系统的方式存储内容 git cat-file -p master^{tree}
blob a906cb2a4a904a152e80877d daad0c859 README blob 8f f9404f26296befa88755fc2598c289 Rakefile tree 99f1a6d12cb4b6f19c8655fca46c3ecf317074e0 lib

30 提交对象 commit object保存包括HASH在内的更多信息 git cat-file -p fdf4fc3
tree d8329fc1cc938780ffdd9f94e0d364e0ea74f579 author Scott Chacon committer Scott Chacon

31 Git 引用 Branch HEAD

32 最新版本保存完整内容,原始文件反而使用差异保存
包文件 对大文件的优化,记录变化 最新版本保存完整内容,原始文件反而使用差异保存

33 Reference

34 THANK YOU


Download ppt "Git 151220114 王宇鑫."

Similar presentations


Ads by Google