文章目录
0.前言
-
为什么要使用git呢?
比如自己在写项目代码的时候,先完成了功能A,进行保存后,之后需要添加功能B,然后在原来的基础上修改,不仅仅添加了新的包,新的配置文件,新的代码,还在用来实现功能A的代码添加功能B需要的个别方法,这样子功能A的代码不仅仅包含属于实现自己功能的代码,还包括B需要的部分代码。突然,这个时候,B功能不想要了,那么我们需要恢复到只有功能A的代码,即需要删除有关于功能B的代码,比如配置文件,代码,包等等,那就很麻烦,你需要一点点删除。
-
上述还只是你自己写项目代码的时候,若出现了,多人合作的话,可想而知,工作量更加大,因此我们急需版本控制。版本控制可以方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
1.版本控制
- 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
- 是用于管理多人协同开发项目的技术。
2.版本控制分类
1.本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用。
2.集中版本控制(SVN)
-
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改 。
-
所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。
-
而且,所有数据都保存在单一的服务器上,假如这个服务器会损坏,这样就会丢失所有的数据,解决方法定期备份。
3.分布式版本控制(Git)
-
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
-
不会因为服务器损坏或者网络问题,造成不能工作的情况。
-
但是会有安全隐患,因为代码是每个用户下都有,若此用户辞职,则有可能会携带所有代码跑路。
3.Git与SVN的区别
-
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以每次都要先从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。
集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
-
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。
协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!(这个场景后面会演示)
4.Git下载
-
使用淘宝镜像下载:
http://npm.taobao.org/mirrors/git-for-windows/ 我下载的是 version 2.28.0.windows.1
-
安装:一直下一步就好了(当然你可以设置安装路径),安装完毕就可以使用了!
-
当你安装好后,你可以随意在个文件夹里面或者桌面上点击个右键,看到这两个图标。
-
通常情况下,我们使用的是git bash here 就是类是linux终端,git gui here 是图形界面(不建议使用)。
-
而我的电脑使用git自带的终端,稍微有点慢,因此使用的是win10的终端,因为在安装git的时候,会自动帮我们配置好环境变量。因此可以直接使用。如下,安装成功了。
5.Git的必要配置
配置用户与邮箱(必须要的),相当于身份识别。
# 用户帐号
git config --global user.name "jin"
# 邮箱
git config --global user.email xxxxxxx@qq.com
下面则是查看系统配置信息
# 查看系统config 是存在git安装目录下的/etc/gitconfig中
# 如果不知道自己的git安装在哪里,可以输入下面命令,会得到一行
# http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
# 我git的安装位置就是在c盘下Program Files/Git里面
git config --system --list
# 查看当前用户(global)配置 是在当前用户登录用户的配置中C:\Users\{自己用户名}\.gitconfig中
# 一开始如果你没有配置用户名和邮箱,直接输入下面密码则为空
git config --global --list
# 直接列出全部配置信息
git config -l
# 额外小知识 win终端清屏 命令 cls
6.Git的架构
-
架构图稍微理解下,等掌握后面知识点,甚至操作几次后,就会发现这个架构图,特别简单。
-
git的工作流程一般是这样的:
1、在工作目录(工作区)中添加、修改文件;
2、使用add将需要进行版本管理的文件先暂时放入暂存区域(里面可以放多个文件);
3、之后需要将暂存区域的文件(可以是多个文件)提交(commit)到本地git仓库,生成版本,进行版本控制。
-
工作区:就是你平时存放项目代码的地方。
版本库:工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容。
暂存区:版本库中包含一个临时区域,保存下一步要提交的文件,你可以理解为暂时放这里保存一下。
分支:版本库中包含若干分支,提交的文件存储在分支中(后面有专门一节讲分支)。