您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
android应用开发-从设计到实现

 
来源:博客 发布于: 2017-8-10
  6050  次浏览      19
 

版本管理

前面已经提到了,非常有必要对开发的代码进行管理。那么进行版本管理到底什么时候使用呢?

我总结了使用版本管理的主要场景,有以下3种:

1.对于个人开发者,版本管理能记录开发的变迁。它记录了所有文档的修改记录,就好比玩游戏时,我们都会时刻存档,就怕哪一次不小心,控制的角色挂了;假如不存档,出了问题,必须得从新开始。

如果使用了版本管理,就可以随时保存文档修改的进度。一旦文档任何时候出现了问题,或者希望快速还原到之前某个特定的状态,都可以很容易的切换过去。省去了程序员不少麻烦,毕竟谁也记不清哪年哪月哪日我添加了一段什么代码,目的是什么,而正是这段代码引起了bug,搞得我现在大脑崩溃。

2.当多个程序员开发同一个项目的时候,版本管理工具能很好的协调彼此的工作,让大家开发的代码不会冲突、互相干扰,即使出现了问题,也能很快找到原因。

比如程序员A在他的开发代码中修改了work.java中第15行的内容,同时程序员B在他的开发代码中修改了work.java中第20行的内容。两人把修改提交保存的时候,版本管理工具,会把两人的修改合并起来。

如果程序员A在他的开发代码中修改了work.java中第15行的内容,同时程序员B在他的开发代码中也修改了work.java中第15行的内容。两人把修改的内容提交保存的时候,版本管理工具,会发现两人的修改冲突,告诉A和B,让他们两协商解决问题。

3.文档的修改积累到一定程度,比如说完成了设计的所有内容,就可以设置一个大的节点。后继的开发可以分成两支:一支继续添加新的功能;一支修复现有程序的bug。

管理的工具

为了满足前面提到使用场景,在软件开发的不同历史阶段,出现了不同的版本管理工具:从CVS,到SVN,再到现在使用最广泛的Git。

早期的版本控制软件存在的各种缺点,都被后来的代替者解决了。在安卓的开发中,基本上都在使用Git作为版本控制工具。

Git是Linux之父Linus Torvalds亲自开发的工具,有着高效的管理能力。它最为基本的运作思路大致如下:

1.仓库Repository是一个Git项目的容器,里面存放着文档(包括代码)、以及各个文档的历史修改信息;

2.仓库Repository可以存在于网络端,也可以存在于本地电脑当中;

3.仓库有两种获取的方式,一个是clone网络端已有的;一个是在本地电脑上自行创建,再通过网络提供给别人访问;

4.假如对本地的仓库内容进行了修改,要保存修改进度的时候,

1.要先将这些修改放到stage当中,

2.然后提交-commit到本地的仓库中,此时会产生一个全局唯一识别码-Commit ID,就像f27af79;

3.将commit后的内容推送push到网络端,而这个Commit ID就代表你这次提交的唯一标记;

4.假如推送的时候,自己修改的代码和仓库中的代码出现了冲突Conflit(因为修改了同一处的代码导致),那么推送者就需要查看代码、找到修改这段代码的提交者商量修改方案,解决冲突;

5.其他开发者假如clone了这个仓库,就能看到Commit后的各种修改,并通过拉取pull的操作从网络端把更新同步到自己本地的代码当中;

6.假如同步代码的过程中,自己的代码和别人的修改发生了冲突Conflit,那么拉取者就需要查看代码、找到修改这段代码的提交者商量修改方案,解决冲突;

除此之外,Git还拥有软件工程方面的实用技巧,例如创建开发分支Branch,给代码打标签Tag。

更加详细的内容,可以参考这里。里面还列举出了各个平台下可以选择的图形化工具。

Github的使用

Github几乎是全世界程序员都知道的项目托管平台,我们可以把代码放在这个平台上。整个项目的托管就是基于Git的原理实现的。

Github在Git管理中充当着网络端的功能,扮演中心服务器的角色,让我们可以随时更新代码、提交代码,分享代码。

而Android Studio具有对Github平台的原生支持,让我们在开发的时候能够无缝的加入对软件版本控制的管理功能。

Github的注册

打开Github的官网,按照指示很容易的注册一个账号。

登陆账号后,可以看到你现在具有的仓库-Repository,

我之前已经创建过几个免费仓库了,所以列表里会将它们呈现出来。如果是新注册的账号,这里应该是空的。

Android Studio的配置

现在我们来把之前创建的天气预报工程,托管到Github上:

1.启动工具栏的VCS -> Import into Version Control -> Share Project on Github;

2.在弹出的窗口中,根据提示输入Github上的账户名和密码;

3.输入项目的名称WeatherApp和项目描述,选择Share;

4.确认要添加到管理中的文件(代码、配置、资源等文件),并给这次提交添加描述信息;

刷新Github上的个人主页,可以看到新添加的项目仓库WeatherApp已经出现在那里了,

此时看看Android Studio的Version Control窗口,就能看到当前的代码管理情况,

Android Studio的Git管理

提交与推送入库

Git版本管理有很多用法,这里我们先介绍两个最常使用的功能commit与push。

假如我们修改了WeatherApp的MainActivity.java,

LocalChanges选项卡会将当前发生了变化的、被版本管理记录的文件列出来,

点击提交commit按钮,会将修改过的文件放入stage状态,

并展示当前要提交commit文件的状态,让我们再次确认。当我们点击被修改过的文档时,Android Studio会为我们展示当前修改后的文档与修改前的文档有哪些异同。让我们在最后提交之前,再次检查确认一次,

检查无误后,选择提交并推送入库-Commit and Push,

假如没有冲突发生,就能看到提交成功,版本控制增加新的节点,

Github上项目对应的代码页,也会更新,

其他

Android Studio还提供了创建分支Branch、创建标签Tag、以及在不同节点上来回切换的功能,这里就不详细描述了。

因为这些内容如果没有实际的例子,讲起来会很枯燥。我会在开发的过程中根据需要穿插进响应的内容,这样大家理解起来就会非常的方便了。

--------------------------------------------------------------------------------

   
6050 次浏览       19
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程