#一、 源代码管理工具简介
* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉。
* 为什么会出现源代码管理工具?
* 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对?
* 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的。后来发现不太靠谱,因为他只能存一个整数,所以就发明了个数组[]用来存放多个整数。后来又发现数组里面的数据没办法描述所有的类型。比如说我想描述对象里面的属性,比如说我们以前存储10个学生的成绩,可能10个人的成绩一个一个的放进去,但是并没有办法区分每一个人对应的学号、姓名、成绩等信息,后面又发明了结构体struct。
* 再后来发现结构体也有局限性,因为它只能保存一些属性,但是我们没办法操作这些数据,所以后面就发明了我们的类,在struct的基础上又增加了我们非常牛逼的方法。那么类是不是就可以帮我们解决面向对象的问题了?每个学生的数据是不是都可以解决了
* 同学们有没有发现一个原理,任何语法规则的发明创造都是为了解决人类的问题的,对不对?这个是有迹可循的,不可能说我凭空创造一个东西,不为了实现任何东西,对不对?
* 再举个例子,枚举:平常我们是不是传个1、2、3数字来进行操作的,但是并不知到这个数字表示什么,对不对?这么做也没有问题,但是别人看你的代码的时,并不知道你想表达什么意思,但是如果我们枚举的话,是不是立刻就能明白这行代码向表达的功能,对不对?能理解吗?同学们
* 为了解决在软件开发过程中,由源代码引发的各种蛋疼、繁琐的问题。
* 源代码会产生哪些问题呢?
* 无法后悔:做错了一个操作后,没有后悔药可以吃。
* 如果发现了写错了,撤销或删除也可以,但是如果程序中增加了一个功能可能有100行代码,然后在程序的其他地方进行调用,那这个时候我们就不好找了。
* command + z有个局限性,关闭再打开就没法了。
* 或者备份也可以,写错了,删掉,但是这时候也有问题,每次写一个功能都备份一份,每次写一个都备份一份。这样可能不清楚每一个文件增加了什么功能。
* 备注功能也行,但是还是有问题:
* 比较麻烦
* 文件展示比较乱。而且在实际开发中没办法每次都备份一份。
* 正常情况下,每写一个功能就备份一份,这样容易忘掉。
* 版本备份:费空间费时间。
* 版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本。
* 代码冲突:多人操作同一个文件(团队开发中的常见问题)各自开发的功能要整合到一起。
* 权限控制:无法对源代码进行精确的权限控制。
* 追究责任:出现了严重的bug,无法得知是谁干的,容易耍赖。
* 源代码管理工具比较牛逼,它可以判断每一行代码里面每一个字符是谁写的。
* 源代码管理工具的作用:
* 能追踪一个项目从诞生一直到定案的过程。
* 记录一个项目的所有内容变化
* 方便地查阅特定版本的修订情况
* 如果是团队开发,使用源代码管理工具是强制性的!
* 如果是单人开发,也强烈建议现在就开始使用源代码管理工具
* 使用源代码管理工具:
* 由于使用简单,不会增加工作量。
* 不会对现有工作造成任何损害(坏的影响)
* 是一位合格的软件开发人员必须掌握的技术。
* CVS:
* 开启版本控制之门
* 1990年诞生,"远古时代"的主流源代码管理工具
* SVN
* 全称是Subversion:集中式版本控制之王者
* 是CVS的接班人,速度比SVN快,功能比CVS多且强大。
* 在国内软件企业中使用最为普遍。
* GIT
* 一款伟大的分布式源码代理管理工具
* 目前被越来越多的开源项目工具使用
* 不过在国内企业尚未大范围普及
#二、SVN操作简介:
* 基本操作:
checkout:只需要做一次
update:更新代码
commit:提交修改的代码
* 服务端搭建
* 客户端
* 与Xcode的集成【对SVN的集成不是很好,但是对GIT的集成是非常好的】
* 使用环境:
* 要想利用SVN管理源代码,必须得有2套环境
* 服务器:
* 用于存储客户端上传的源代码
* 可以在Windows上安装Visual SVN Server
* 大部分情况下,公司的开发人员不必亲子搭建SVN服务器
* 客户端:
* 上传本地代码到服务器,或者跟新服务器的代码到本地,保持同步
* 可以在Mac上使用命令行、Versions、Cornerstone
* 开发人员就属于客户端这个角色
*
# 三、SVN的基本操作
* 安装服务器端
* 双击进行安装,路径默认的就好,
# 四、解决冲突:
* out of date:过期,服务器的版本比
* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉。
* 为什么会出现源代码管理工具?
* 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对?
* 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的。后来发现不太靠谱,因为他只能存一个整数,所以就发明了个数组[]用来存放多个整数。后来又发现数组里面的数据没办法描述所有的类型。比如说我想描述对象里面的属性,比如说我们以前存储10个学生的成绩,可能10个人的成绩一个一个的放进去,但是并没有办法区分每一个人对应的学号、姓名、成绩等信息,后面又发明了结构体struct。
* 再后来发现结构体也有局限性,因为它只能保存一些属性,但是我们没办法操作这些数据,所以后面就发明了我们的类,在struct的基础上又增加了我们非常牛逼的方法。那么类是不是就可以帮我们解决面向对象的问题了?每个学生的数据是不是都可以解决了
* 同学们有没有发现一个原理,任何语法规则的发明创造都是为了解决人类的问题的,对不对?这个是有迹可循的,不可能说我凭空创造一个东西,不为了实现任何东西,对不对?
* 再举个例子,枚举:平常我们是不是传个1、2、3数字来进行操作的,但是并不知到这个数字表示什么,对不对?这么做也没有问题,但是别人看你的代码的时,并不知道你想表达什么意思,但是如果我们枚举的话,是不是立刻就能明白这行代码向表达的功能,对不对?能理解吗?同学们
* 为了解决在软件开发过程中,由源代码引发的各种蛋疼、繁琐的问题。
* 源代码会产生哪些问题呢?
* 无法后悔:做错了一个操作后,没有后悔药可以吃。
* 如果发现了写错了,撤销或删除也可以,但是如果程序中增加了一个功能可能有100行代码,然后在程序的其他地方进行调用,那这个时候我们就不好找了。
* command + z有个局限性,关闭再打开就没法了。
* 或者备份也可以,写错了,删掉,但是这时候也有问题,每次写一个功能都备份一份,每次写一个都备份一份。这样可能不清楚每一个文件增加了什么功能。
* 备注功能也行,但是还是有问题:
* 比较麻烦
* 文件展示比较乱。而且在实际开发中没办法每次都备份一份。
* 正常情况下,每写一个功能就备份一份,这样容易忘掉。
* 版本备份:费空间费时间。
* 版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本。
* 代码冲突:多人操作同一个文件(团队开发中的常见问题)各自开发的功能要整合到一起。
* 权限控制:无法对源代码进行精确的权限控制。
* 追究责任:出现了严重的bug,无法得知是谁干的,容易耍赖。
* 源代码管理工具比较牛逼,它可以判断每一行代码里面每一个字符是谁写的。
* 源代码管理工具的作用:
* 能追踪一个项目从诞生一直到定案的过程。
* 记录一个项目的所有内容变化
* 方便地查阅特定版本的修订情况
* 如果是团队开发,使用源代码管理工具是强制性的!
* 如果是单人开发,也强烈建议现在就开始使用源代码管理工具
* 使用源代码管理工具:
* 由于使用简单,不会增加工作量。
* 不会对现有工作造成任何损害(坏的影响)
* 是一位合格的软件开发人员必须掌握的技术。
* CVS:
* 开启版本控制之门
* 1990年诞生,"远古时代"的主流源代码管理工具
* SVN
* 全称是Subversion:集中式版本控制之王者
* 是CVS的接班人,速度比SVN快,功能比CVS多且强大。
* 在国内软件企业中使用最为普遍。
* GIT
* 一款伟大的分布式源码代理管理工具
* 目前被越来越多的开源项目工具使用
* 不过在国内企业尚未大范围普及
#二、SVN操作简介:
* 基本操作:
checkout:只需要做一次
update:更新代码
commit:提交修改的代码
* 服务端搭建
* 客户端
* 与Xcode的集成【对SVN的集成不是很好,但是对GIT的集成是非常好的】
* 使用环境:
* 要想利用SVN管理源代码,必须得有2套环境
* 服务器:
* 用于存储客户端上传的源代码
* 可以在Windows上安装Visual SVN Server
* 大部分情况下,公司的开发人员不必亲子搭建SVN服务器
* 客户端:
* 上传本地代码到服务器,或者跟新服务器的代码到本地,保持同步
* 可以在Mac上使用命令行、Versions、Cornerstone
* 开发人员就属于客户端这个角色
*
# 三、SVN的基本操作
* 安装服务器端
* 双击进行安装,路径默认的就好,
# 四、解决冲突:
* out of date:过期,服务器的版本比