版本控制
Revision control其实是一种在项目开发过程中管理文件、工程、目录的修改历史,便于查看历史记录、备份与恢复到以前的版本的工程技术。
总之,使用先关的版本控制软件可以用来管理多人协同开发项目。
Git的历史
这个当前世界上最先进的分布式版本控制系统是又Linux之父——李纳斯·托沃兹(Linus BenedicTorvalds)1969芬兰。
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许上千个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
Git与SVN
1. SVN(集中式版本控制系统)
SVN的版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就叽叽了。
- 集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。
- 但是相较于其优点而言,集中式版本控制工具缺点很明显。
缺点 | |
---|---|
1 | 服务器单点故障 |
2 | 容错性差 |
下面是SVN的工作流程
2. Git(分布式版本控制系统)
它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
投的基本工作流程如下:
- 从远程仓库克隆代码到本地仓库
- 从本地仓库中checkout代码然后进行代码修改
- 在提交前先将代码提交到暂存区。
- 提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本
- 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
Git安装
下载地址:
- 官网:https://git-scm.com/download
- 淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/
(win10)安装流程:傻瓜式安装,一路点击确定就行(随意那个盘都行)
我的网盘里面也有先关的软件:
链接:https://pan.baidu.com/s/1NKAdXRfPFm0vxWbs0ITP0g
提取码:ov1l (里面有Git还有GUI软件,一本书)
还有就是不建议初学者使用带界面的Git操作,应该多使用命令才好
Git配置
查看所有的配置
打开cmd界面查看配置:
git config -l
查看配置文件
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
Git的配置文件在哪里:
1)Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级
2)C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局
配置你的码云或者Github的用户信息到本地Git上(设置用户名与邮箱):先注册码云账号或者GitHub账号(都差不多,不过码云的不会卡,GitHub浏览的时候回卡的要死,毕竟是国外的,码云是国产的)
git config --global user.name "Your Name" #码云的登录名称(用户名称)
git config --global user.email "email@example.com"#注册的邮箱
只需要做一次这个设置,如果你传递了–global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。总之–global为全局配置,不加为某个项目的特定配置。
然后去查看配置文件是否成功
我们可以CMD界面输入命令查看一下用户名和密码:
git config user.name
git config user.email
安装成功的话结果会对的
Git的理论知识
三个工作区域:
- 工作目录(Working Directory):就是你平时存放项目代码的地方
- 暂存区(Stage/Index):用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- 资源库(Repository或Git Directory):就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- 远程的git仓库(Remote Directory):托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换