一、版本控制工具应该具备的功能
1.协同修改
多人并行不悖的修改服务器端的同一个文件。
2.数据备份
不仅保存目录和文件的当前状态, 还能够保存每一个提交过的历史状态。
3.版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据, 以节约存储空
间, 提高运行效率。 这方面 SVN 采用的是增量式管理的方式, 而 Git 采取了文
件系统快照的方式。
4.权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核——Git 独有。
5.历史记录
查看修改人、 修改时间、 修改内容、 日志信息。
将本地文件恢复到某一个历史状态。
6.分支管理
允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率。
二、版本控制简介
2.1 什么是版本控制?
工程设计领域中使用版本控制管理工程蓝图的设计过程。 在 IT 开发过程中也可以
使用版本控制思想管理代码的版本迭代。
2.2 版本控制工具
思想: 版本控制
实现: 版本控制工具
分类:集中式版本控制与分布式版本控制
集中式版本控制工具:CVS、 SVN、 VSS……
分布式版本控制工具:Git、 Mercurial、 Bazaar、 Darcs……
2.3 git与svn两种版本控制工具的区别:
1.git是用c语言编写,用于linux命令操作与linux系统无缝协作
2.权限控制:git可以接收团队外开发者贡献的代码,svn不行
3.版本控制方式:svn使用增量式管理,保存修改的部分。
git使用文件系统快照的方式。
4.网络问题:svn是集中式,一旦与svn服务器断网则无法进行后续操作。
git是分布式,可以继续操作本地库。
5.数据恢复:
svn服务器宕机,数据丢失可以根据某一人开发人员的当前工程提交,但是之前其他人做的所有历史记录则无法恢复
git每个人的本地则存放历史版本记录,可恢复服务器记录。
三、GIT
1.git 官网: https://git-scm.com/
2.git的优势势
- 大部分操作在本地完成, 不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常快捷流畅,提高开发效率
- 与 Linux 命令全面兼容
**3. git 安装–windows **
软件版本:Git-2.17.0-64-bit.exe
注意:1.安装路劲放置一个非中文无空格的路径下
2.建议选择vim编辑器
4.git 结构
5.git和代码托管中心
代码托管中心的任务: 维护远程库
局域网环境下
GitLab 服务器
外网环境下
GitHub
码云
6.本地库与远程库
7.跨团队合作–接收团队外开发者贡献的代码
8. git原理:
哈希:哈希是一个系列的加密算法, 各个不同的哈希算法虽然加密强度不同, 但是有以下
几个共同点:
①不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
②哈希算法确定, 输入数据确定, 输出数据能够保证不变
③哈希算法确定, 输入数据有变化, 输出数据一定有变化, 而且通常变化很大
④哈希算法不可逆
Git 底层采用的是 SHA-1 算法。
哈希算法可以被用来验证文件。 原理如下图所示:
Git 就是靠这种机制来从根本上保证数据完整性的
9. Git 的文件管理机制:
Git 把数据看作是小型文件系统的一组快照。 每次提交更新时 Git 都会对当前
的全部文件制作一个快照并保存这个快照的索引。 为了高效, 如果文件没有修改,
Git 不再重新存储该文件, 而是只保留一个链接指向之前存储的文件。 所以 Git 的
工作方式可以称之为快照流。
来源尚硅谷封捷老师