什么是版本控制?
管理更新的历史记录
集中型与分布型
集中型
只放在一个仓库,便于管理,但一旦无法联网或服务器故障会导致数据丢失,无法获取最新代码等问题。
代表:SVN
分散型
每个开发者都会有一个仓库,不必连接远程仓库就可以开发。
代表:Git
版本控制工具的功能
Git 和代码托管中心
- 局域网环境下
- GitLab 服务器
公网环境下
不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
- 哈希算法确定,输入数据确定,输出数据能够保证不变。
- 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化比较大。
- 哈希算法不可逆。
保存版本的机制
集中式
以文件变更列表的方式存储信息。这类系统将他们存储的信息看成是一组基本文件和每个文件随时间逐步累积的过程。
分布式
Git 把数据看成是小型文件系统的一组快照。每次更新 Git 都会当前的全部文件制作一个快照的索引。为了高效,如果文件没有被修改, Git 不再重新存储改文件,而是只保留一个链接指向之前存储的文件。所以 Git 的工作方式称之为快照流。