1、SVN概述
1.1、为什么要使用版本控制软件
在实际开发项目的过程中往往是多人在协同开发项目。如果多人在开发项目就暴露出了代码的相关(代码的管理)的问题
代码备份
代码还原
问题追踪
对于上面列出的代码管理的相关问题就需要使用版本控制软件来帮助管理项目代码
1.2、常见的版本控制软件
CVS:比较奇葩的产品(svn的前身)
VSS:微软开发的版本控制软件
ClearCase:IBM开发的一款收费的版本控制软件
Svn:属于一款集中式的版本控制软件
Git:属于一款分布式的版本控制软件
1.3、什么是SVN
Subversion是一个自由/开源版本控制系统,c/s结构(有客户端有服务端),一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看,许多人把版本控制系统当作一种“时间机器”。
备注:svn是一种cs结构的软件。有客户端也有服务端。Svn是帮助管理项目代码的软件。能够实现问题追踪、代码还原、等功能。
SVN软件搭建
2.1、SVN软件获取
SVN分为服务器端与客户端
服务器端:VisualSVN 或 SubVersion
客户端:TortoiseSVN
服务端下载地址:https://www.visualsvn.com/visualsvn/download/
客户端下载地址 :http://tortoisesvn.net/downloads
2.2、SVN服务端的安装
①进入下载的svn软件目录
②运行安装
③接受协议下一步
④选择界面类型
⑤选择安装类型
安装操作暂时先到此处
⑥创建目录
⑦继续安装指定安装地址
⑧剩余的一路下一步安装即可
最终安装完成之后界面如下
2.3、安装客户端
①确定自己本机的位数
②根据自己电脑的位数选择安装的客户端版本
③运行svn的客户端
④同意协议
⑤选择安装地址
⑥安装
⑦安装完成
安装完成之后鼠标右键效果如下
2.4、安装中文的语言包
①运行安装包
②下一步安装
2.5、关于语言问题
对于语言包安装完成之后默认会使用对应的语言包。如果安装完成之后还没有切换可以手动指定语言具体操作如下
①右键进入到svn的设置界面
②设置语言
注意:对于目前svn的客户端跟服务端都是安装在自己的本机。需要区别后期对服务端跟客户端的操作
SVN仓库配置
3.1、什么是仓库
对于svn作用是进行版本控制。而版本控制的实现是通过记录代码文件实现。因此svn需要保存代码文件。具体保存代码文件的目录就叫做仓库。对于svn的仓库包括的功能并不仅限于保存代码(svn仓库中保存的代码文件并不是直接保存用户编写的文件)。还支持权限等控制。
3.2、配置仓库
①在d:/svn目录下创建总仓库
②在web目录下建立一个测试的仓库
③运行cmd
④创建仓库
在命令行下执行命令本质就是在操作系统的全局环境变量的目录中搜索对应同名的可执行文件
⑤查看仓库目录下的文件
3.3、启动svn的服务端软提供服务
3.3.1、启动svn服务端
①使用命令启动svn服务
-d:指定为后台方式启动(目前存在问题并不是真正的后台方式启动)
-r:指定仓库的地址
注意:此处的后台方式启动存在问题。并不是真正后台方式启动因此cmd处于一个“挂起”状态。此时的cmd不要关闭。如果一旦关闭服务中断
3.3.2、使用客户端操作服务端
①在Apache的web跟目录下创建一个目录
②检出SVN上的项目
先右键选择”SVN检出”
然后填写相关地址即可
结果如下
③查看客户端的shop目录下的文件
对于上图的文件需要开启查操作系统用的看隐藏文件功能
④使用SVN的增加功能
首先增加文件
然后增加到上传队列中(告知svn有一个文件需要记录)
具体操作文字说明:选中文件->右键->TortoiseSVN->加入
对于单独的文件增加没有任何的提示。如果增加文件夹提示弹出框选中。效果如下
⑤提交文件
在弹出框中填写相关的内容
具体结果如下
产生错误的原因是因为有权限相关的控制
⑥解决权限问题
修改权限配置文件
然后重启svn服务
⑦再次提交代码测试
关于客户端的操作总结:
- svn检出:建立与svn服务端的连接
- Svn增加文件:告知svn服务端需要记录的内容
- Svn提交:具体将文件代码上传到svn服务端进行保存
关于服务端总结:
启动服务:整个svn服务能够正常的运行
开启匿名访问的权限:可以提交代码
3.4、svn的使用流程总结
- 对于任何一个开发人员首先必须要要与svn服务端进行连接。也就是需要进行svn的检出操作检出只进行一次。后期需要获取最新的代码使用svn的更新功能
- 如果开发者增加了信息文件。需要将文件添加到上传svn的队列中
- 不论是增加新文件还是修改已有的文件,需要提交到svn上(提交一般功能实现了正常)
SVN图标介绍
4.1、svn图标
即svn给项目中的每个文件及目录都会增加的一些图标帮助标识项目的修改情况
4.2、查看svn中图标种类
①进入svn的设置
②查看图标集样式
备注:SVN图标虽然支持的比较多。但是实际使用过程中能够显示的并不多。对于Windows操作系统只能支持使用最多15个小图标。如果有其他软件使用了。那么会导致图标不显示
4.3、图标介绍
①常规图标
含义:表示当前文件或者目录与svn服务端上的保持一致
②修改图标
含义:当前的文件跟svn服务端上的文件不一致。有修改
③冲突图标
含义:当前的内容跟svn中的内容有冲突。跟修改图标不是一个意思。表示当前修改的文件使用的不是svn中的最新文件
④只读图标
含义:当前文件为只读属性
⑤已删除
含义:表示当前的文件在svn服务端已经删除
⑥锁定图标
含义:当前文件处于锁定的状态
⑦增加图标
含义:文件已经处于svn上传的队列
⑧忽略图标
含义:文件处于一个忽略状态不会提交到svn服务器上
⑨无版本控制
含义:表示当前的文件不受svn版本控制
队列:排着队处理任务。每一个逐步执行。按照顺序进行没有插队
svn使用
5.1、忽略功能
在项目开发的过程中部分文件可能不需要上传到SVN的服务器上。
例如配置文件。在配置文件中往往记录数据库的配置信息。在开发时是使用的本机的信息。当项目上线如果还更新配置文件就会导致项目出现故障
①忽略指定的文件
选中要忽略的文件右键->tortoiseSVN->增加到忽略列表->选中文件
②增加某类文件的忽略
5.2、SVN的增加功能
Svn增加可以将新的文件添加到上传到svn服务端的队列当中
5.3、svn的更新
开发项目过中往往都是多人在进行开发。如果有某一个人修改代码提交了。另外一个人想要使用最新的代码就需要使用svn的更新功能
①先在Apache的web目录下建立shop2目录演示另外一个客户端
②在shop2目录下建立文件或者修改在提交代码
③在shop2下进行提交
④在shop目录下进行更新
备注在实际开发过程中客户端使用最多的就是svn的更新、svn的添加、svn的提交功能
5.4、SVN的冲突
5.4.1、冲突产生的原因
针对同一个文件才有可能产生冲突
5.4.2、演示冲突问题
①在shop下修改index.php
②shop下提交代码
③在shop2目录下修改index.php
④在shop2下提交代码
结果如下
5.4.3、解决冲突
①更新最新的代码
②查看冲突的文件及目录
③处理冲突问题
首先选中其他跟冲突相关的文件删除
然后手动的修改冲突文件
⑤SVN提交
对于冲突最后的修改文件需要根据实际的业务情况处理。进行手动的合并操作
5.5、svn版本回退
Svn版本的回退可以方便回退到任意的一个版本
①更新至版本
结果如下
②通过查看日志确认自己要更新的版本
③通过日志进行还原到版本
5.6、svn多仓库配置
在实际项目中往往项目比较多。需要多个仓库。对于仓库的创建比较容易。但是在启动svn服务的时候只能使用一个仓库。此处就需要使用到svn的多仓库配置
①创建oa文件夹
②创建oa的仓库
结果如下
③多仓库的方式启动svn服务
④客户端检出
客户端检出时需要注意仓库的地址:
5.7、svn重定向
对于svn服务端的仓库地址有修改,对于客户端想要正常使用需要更新svn服务端的地址。操作如下:
先打开svn的重定向提示
填写地址
在弹窗选择迁移即可
5.8、svn权限认证
Svn权限认证即通过用户名跟密码的校验之后才可以进行svn的相关操作。注意svn的权限认证基于仓库。
5.8.1、开启svn的权限认证
①进入到仓库的查看配置文件
②修改svnserve.conf文件
②修改passwd文件
③修改authz文件
④重新启动服务
5.8.2、测试使用
①新建立一个目录
②svn检出
结果如下
③增加代码然后提交
先加入文件
在svn提交文件
输入一个没有权限的用户密码之后提交结果如下
再次重新提交文件使用有权限
svn设置为系统服务
目前svn服务端每次都要保证cmd处于挂起状态才能给正常的提供服务。如果cmd一旦关闭 svn服务也就关闭比较麻烦。可以将svn加入到计算机的系统服务中并且设置为自动启动
6.1、svn设置为系统服务
①以超级管理员的身份启动cmd
结果如下
②使用命令设置服务
6.2、svn启动服务
方式一:直接找到服务启动
结果如下
方式二:通过使用命令
6.3、svn服务的卸载
Git概述(扩展)
7.1、Git介绍
Git是一个分布式的版本控制软件。能够帮助管理项目的代码
7.2、版本控制软件中的集中式与分布式区别
①svn的集中式
②git的分布式
7.3、安装git软件
一路下一步即可
安装完成之后如下
7.4、git使用流程
git基本使用
①新建git目录
②进入目录使用git
③初始化用户信息(此步骤可以值设置一次)
git config –globle user.name ‘用户名’
git config –globle user.email ‘邮箱’
④使用命令初始化创库
查看目录下的结果
⑤开始开发创建文件
⑥增加代码到暂存区
⑦提交代码到仓库
git还原
①增加测试文件second.php
②增加到暂存区
③提交仓库
④再次增加测试文件并且提交
⑤再次增加测试文件并且提交
⑥查看版本
⑦使用head更新
更新到上上个版本
可以查看结果
Git与github
10.1、git与GitHub的关系
Git不等价于github
Git是版本控制软件
Github是基于git基础上提供的一个代码的托管平台(可以将代码推送给github或者从GitHub上下载最新的代码)
在国内使用比较多的用码云(跟github一模一样)
10.2、码云使用
①注册账号
②登录
③创建项目
填写表单提交即可
④查看地址
⑤获取线上的代码
⑥创建文件
⑦增加代码到暂存区然后提交
⑧推送代码给码云
在推送的过程中需要自己的有权限。如果推送的项目没有把自己的账户加入为开发者是不能正常推送的
git中的分支
①创建分支
②切换分支
③在分支下创建文件
④分支中提交代码
⑤切换到主分支
⑥分支的合并
合并过程中有冲突手动解决冲突问题
备注:
软件提供服务。一直会存在一个进程在长期执行对于此进程就叫守护进程