- 方便程序员代码共享,协同开发
应用场景:
-
想恢复到某个版本,ctrl+z是有最大记录数的,不能回到原来的那个版本了
-
修改一个bug,改来改去最后改好了,但是自己也忘记了是怎么改好的,没有一个改动的记录
-
项目中出了一个bug,大家都不承认是谁改的,没有一个修改人的记录
-
代码的权限控制,新手菜鸟可能一不小心把代码给删除或者改错了
-
项目管理,工作量统计—查看每个程序猿的代码提交量
-
项目不同版本代码的保存、备份
2. 常用软件
以下是集中式版本控制:
- CVS:
已经基本淘汰,之前主流的版本控制软件
- SVN:
Subversion,为了替代CVS。目前主流软件
- ClearCase:
IBM开发(收费),大型团队的项目开发版本控制
- VSS
微软开发(用的人很少),两个字形容:糟糕
分布式版本控制:
- GIT
分布式版本控制软件,由github网站的影响而逐渐火起来
集中式和分布式的区别:
集中式:多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的
分布式:分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
VisualSVN是一款图形化svn服务器。官网
http://www.visualsvn.com/server/
下载地址:
http://www.visualsvn.com/server/download/
搭建svn服务器,安装步骤见文档
3. SVN使用步骤
-
checkOut:把服务器的仓库下载到本地
-
在仓库中编写代码
-
对新创建的文件选择add选项
-
commit:把文件或文件夹中修改过的文件提交至服务器
-
show log:查看所有历史版本
-
update:把服务器上与本地内容不一致的文件下载下来
-
程序员同一时间修改了同一个文件的同一个位置,就会出现代码冲突
-
edit conflicts
-
文件锁
-
类似java同步锁
-
在properties中设置need-lock为true
-
svn get lock:申请文件锁
-
一个用户拿到了文件锁,其他用户就不能再申请了
-
commit代码后,会自动释放文件锁
-
Release lock:手动释放锁
-
add to ignore list
4. SVN图标
-
蓝色问号:创建的一个新的文件或者图片,默认左上角是一个蓝色的问号:这个文件就是版本控制软件检测到的新文件,他会问你是否要加入到版本控制里面。
-
蓝色加号:对想要加入到版本控制的文件:右键:Add->将该文件加入到我们的版本控制里面。 添加成功之后图标就变成蓝色的加号
-
绿色对勾:对蓝色加号的文件右键:commit操作-> 注意填写提交的注释,说明。 ok之后,我们的图标变成绿色的勾之后就代表我们的文件已经提交到服务器上了。
-
红色叹号:表示该文件或文件夹与服务器内容不一致,也就是被修改了,但是还未上传
-
三角黄色叹号:表示该文件中出现代码冲突
-
灰色对勾:表示该文件被文件锁锁住了
-
黄色的锁头:表示用户已经拿到该文件的文件锁,可以修改该文件
写在最后
由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~
将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。
提升架构认知不是一蹴而就的,它离不开刻意学习和思考。
**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
转发+点赞+关注,第一时间获取最新知识点
Android架构师之路很漫长,一起共勉吧!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
转发+点赞+关注,第一时间获取最新知识点
Android架构师之路很漫长,一起共勉吧!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!