01 【版本控制和Git的安装介绍】
01 【版本控制和Git的安装介绍】
工程设计领域中,使用“版本控制”管理工程蓝图的设计过程。在 IT 开发中也可以使用版本控制思想管理代码的版本迭代。
1.目的
协同修改:支持在服务器对同一个文件多人协同地修改; 数据备份:同时保存目录及文件的当前状态与每次提交时的历史状态; 版本管理:不保存版本间的重复数据以节约存储空间;
为此,SVN 和 Git 分别采用增量式管理 和文件系统快照 的方式。
权限控制:对团队协作者进行权限控制(SVN 和 Git 共有);审核团队外开发者贡献的代码(Git 独有); 历史记录:查看修改者、修改时间、修改内容、日志信息等项目;将本地文件恢复到某一指定的历史状态; 分支管理:允许开发团队同时优雅地推进多条生产线任务,提高效率。
2. 工具
版本控制工具是版本控制思想的实现。
2.1 集中式版本控制工具
如:CVS、SVN、VSS 等。
- 仅云端库有版本历史记录,本地库仅有最新的版本;
- 无法完全避免单点故障的问题。
单点故障:一个主机连接多个处理节点,主节点负责分发任务,而子节点负责处理业务,当主节点发生故障时,会导致整个系统发故障。


2.2 分布式版本控制工具
如:Git、Mercurial、Bazaar、Darcs 等。
- 云端库和本地库都会为各个版本历史记录存档;
- 从根本上避免了单点故障。

3.Git 简介
3.2 Git:分布式版本控制系统
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
下图就是分布式版本控制工具管理方式:

仓库(版本库):相当于一个专门用来存放代码的目录。这个目录里面的所有文件都可以Git管理,每个文件的增删改查都能被Git跟踪到
3.2 发展史

3.3 优势
- 大部分操作在本地完成,不需要联网;
- 完整性保证;
- 尽可能添加数据,而不是删除或修改数据;
- 分支操作非常快捷流畅;
- 与 Linux 命令全面兼容。
4.Git 软件的安装
从 https://git-scm.com/downloads 下载对应操作系统的二进制可执行文件。
直接下一步的过程就不介绍了
1.安装到无空格的英文路径下(这是软件安装过程中的规范,防止因程序的不健壮而引发未知错误);

2.选择需要安装的组件;

3.选择 Visual Studio Code 用于 Git 的默认文本编辑器;

4.设置在执行git init
命令后,由 Git 自行定义新存储库的初始分支名称——master
;

5.设置PATH环境变量——保持默认;

6.选用内置的 OpenSSH 作为 SSH 可执行文件;

7.选择 OpenSSL 库作为 HTTPS 传输端;

8.使用默认配置转换文本文件中的行尾;

9.使用默认配置,选用 MinTTY 作为 Git Bash 的终端;

10.对于执行git pull命令后的行为保持默认;

11.选用默认的授权助手;

12.其他杂项设置;

13.保持对实验性选项的禁用后安装 (Install);
