Android应用开发基础之十二:版本控制
为什么需要版本控制?
- 场景1:
- 你的代码正常工作
- 你改了其中的几行代码
- 程序出了问题
- 你把代码改回来
- 程序还是不能正常工作——为什么?
- 场景2:
- 你的程序昨天还能正常运行
- 昨天晚上你修改了很多内容,做了很大的改进
- 但是目前程序还不能正常运行
- 客户今天要看你程序演示的demo
- 场景3:
- 第一天客户要求你写一个进度条对话框来显示进度
- 第二天客户觉得对话框不好看,用进度条显示进度
- 第三天客户又觉得还是对话框好看,重新用对话框
- 场景4:
- 有人在代码里面做了手脚,找出来这个人
- 程序员不承认这是自己写的代码
- 场景5:
- 代码拥有者权限
- 场景6:
- 你改了代码的一部分,程序可以正常工作
- 你同事改了代码的一部分,程序也可以正常工作
- 你把你们的改动合并在一起,程序不正常工作了
- 到底是代码那些地方发生了变化?
- 什么变化让代码不能正常工作了?
- 我如何跟同事一起协同的开发项目?
- 场景7:
- 项目管理,工作量统计
常见版本控制软件
SVN
svn简介:
Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。
什么是SVN服务器:
SVN分为服务器端和客户端。服务器端运行在某一台服务器或者电脑上。服务器端通过配置文件管理用户名 密码 的配置,以及他们对软件项目目录的访问权限配置。
客户端一般集成在 软件开发人员的开发工具上,如eclipse
还可以使用 类似于
TortoiseSVN 的客户端软件访问 SVN 服务器,提交代码,合并代码等操作。

SVN服务器端安装
VisualSVN是一款图形化svn服务器。官网
http://www.visualsvn.com/server/
下载地址:
http://www.visualsvn.com/server/download/
搭建svn服务器,安装步骤见我的另外一篇博文:如何搭建SVN服务器,详细安装步骤。
TortoiseSvn客户端
TortoiseSVN 是svn版本控制系统的一个免费开源客户端,它是svn版本控制的 Windows 扩展。可以使你避免使用枯燥而且不方便的命令行。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里点击右键操作就可以了。
下载安装地址
http://tortoisesvn.net/downloads
TortoiseSvn的安装,见我的另外一篇博文:TortoiseSvn的安装过程详解
SVN插件:subclipse
eclipse上可以通过安装svn插件的方式实现代码的管理,eclipse中最常使用的SVN插件是subclipse。
subclipse官网:
SVN安装教程见,Mac下eclipse安装SVN插件。
SVN最佳实战
7.采用svn管理android项目
8.常见ignore文件类型
SVN图标详解(TortoiseSVN图标介绍:)


l在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。


l如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。




Eclipse 中SVN插件资源同步符号说明
1.灰色向右箭头:本地修改过
2.蓝色向左箭头:SVN上修改过
3.灰色向右且中间有个加号的箭头:本地比SVN上多出的文件
4.蓝色向左且中间有个加号的箭头:SVN上比本地多出的文件
5.灰色向右且中间有个减号的箭头:本地删除了,而SVN上未删除的文件
6.蓝色向左且中间有个减号的箭头:SVN上删除了,而本地未删除的文件
7.红色双向箭头:SVN上修改过,本地也修改过的文件
Git
Git简介
Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。
Windows下Git的安装
下载地址:http://msysgit.github.io/
Git的安装,见我的另外一篇博文:Git安装图解
2.TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展。可以使你避免使用枯燥而且不方便的命令行。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里点击右键操作就可以了。
下载地址:
https://code.google.com/p/tortoisegit/
TortoseGit的安装,见我的另外一篇博文 TortoiseGIT的安装过程详解
Git的优势
Git基本交互流程图

开源项目工作流程图

Git最佳实战
Github的使用
开源项目获取的方法
http://www.github.com git
http://code.google.com svn

Android应用开发基础之十二:版本控制的更多相关文章
- Android学习之基础知识十二 — 第一讲:网络技术的使用
这一节主要讲如何在手机端使用HTTP协议和服务器端进行网络交互,并对服务器返回的数据进行解析,这也是Android中最常用的网络技术. 一.WebView的用法 有时候我们可能会碰到比较特殊的需求,比 ...
- Android UI开发第四十二篇——实现实现易信的圆形图像和对话列表的图像显示部分
显示图像时,很多个性化显示,圆形或圆角.气泡等等,我们这一篇文章探讨一下圆形和气泡的显示,仿照易信中的实现,先看下效果图: 代码: public class RoundImageView extend ...
- Android UI开发第三十二篇——Creating a Navigation Drawer
Navigation Drawer是从屏幕的左侧滑出,显示应用导航的视图.官方是这样定义的: The navigation drawer is a panel that displays the ap ...
- Android应用开发基础之十:多媒体编程
多媒体概念 文字.图片.音频.视频 计算机图片大小的计算 图片大小 = 图片的总像素 * 每个像素占用的大小 单色图:每个像素占用1/8个字节 16色图:每个像素占用1/2个字节 256色图:每个像素 ...
- Android商城开发系列(十二)—— 首页推荐布局实现
首页新品推荐的布局效果如下图: 这块布局是使用LinearLayout和GridView去实现,新建recommend_item.xml,代码如下所示: <?xml version=" ...
- Android学习之基础知识十二 — 第二讲:网络编程的最佳实践
上一讲已经掌握了HttpURLConnection和OkHttp的用法,知道如何发起HTTP请求,以及解析服务器返回的数据,但是也许你还没发现,之前我们的写法其实是很有问题的,因为一个应用程序很可能会 ...
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...
- Python开发【第二十二篇】:Web框架之Django【进阶】
Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...
- Android应用开发基础篇(1)-----Button
Android应用开发基础篇(1)-----Button 一.概述 Button,顾名思义就是按钮的意思,它主要的功能是响应用户按下按钮时的动作. 二.应用 新建一个工程, ...
随机推荐
- 窥探Swift编程之强大的Switch
之前初识Swift中的Switch语句时,真的是让人眼前一亮,Swift中Switch语句有好多特有而且特好用的功能.说到Switch, 只要是写过程序的小伙伴对Switch并不陌生.其在程序中的出镜 ...
- 出操队形(LIS)
题目来源:微策略2013年校园招聘面试一面试题 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往楼下跑了,然后身高矮的排在队伍的前面,身高较 ...
- ASP.NET MVC Ajax.ActionLink 简单用法
ASP.NET MVC 项目中,如何使用类似于 iframe 的效果呢?或者说 Ajax 局部刷新,比如下面操作: 我们想要的效果是,点击 About 链接,页面不刷新(地址栏不变),然后下面的内容进 ...
- PHPStorm如何配置,phpstorm的mac配置文件目录
PHPStorm的配置分为2大类:项目配置和IDE配置. 项目配置(设置),主要是配置具体项目.IDE 配置(设置),通用的设置会应用到所有的项目上. 项目配置每个项目的配置存储在项目所在目录的 .i ...
- JS打印对象的方法&将Object转换为String的函数
1.有时候需要把对象中的字段属性打印出来,下面用JS实现输出对象: function writeObj(obj) { var description = ""; for (var ...
- C#封装程序集自定义类方法注释提示
一.为什么使用封装程序集: 在很多分布式应用程序开发中,针对每一种功能可能条用的接口不一样,往往习惯将需要被调用的接口,封装成DLL给调用方应用后使用,这样既规范了调用的方式,又避免了调用出现参数请求 ...
- C++_系列自学课程_第_4_课_string_《C++ Primer 第四版》
相信学习过计算机编程的人,基本应该都接触过C语言,在C语言中处理字符串大家一定多遇到过, 也都知道处理字符串非常麻烦,而在C++里面,由标准库string类提供对可变长的字符串的支持.下面 来看看st ...
- python征程1.4(初识python)
1.列表解析. (1)这是一个,让人听起来十分欣喜的术语,代表着你可以通过一个循环将所有值放到一个列表中.python列表解析属于python的迭代中的一种,相比python for循环速度会快很多. ...
- Lind.DDD.Repositories.Redis层介绍
回到目录 之前已经发生了 大叔之前介绍过关于redis的文章,有缓存,队列,分布式pub/sub,数据集缓存以及仓储redis的实现等等,而今天在Lind.DDD的持久化组件里,redis当然也有一席 ...
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...