iOS开发——开发实战篇&版本控制SVN和Git使用详解

版本控制SVN和Git使用详解

公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的!

-----------------svn-----------------

一:最常用基本步骤---

  • 下载(完整下载,第一次),将服务器的项目下载到本地开始开发

svn checkout ip —uaerbane=? —password=?     //这里需要add

简:co

  • 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突

svn updata               //这里的直接commit就可以了

简:up

  • 写代码。。。。。。。。。。。。。
  • 查看状态

svn  status

简:st

  • 添加到仓库

svn add name

  • 提交项目

svn commit -m “注释"

简:ci

  • 版本回退:错误操作,需求更改,查看历史

svn updata r版本号   //查看回退版本

正式:

    1. svn update
    2. svn merge      -r  版本号(现):版本号(前) name
    3. svn ci -m “注释"
  • 移除文件

svn remove name

简:rm

  • 查看版本号
    1. svn updata      //先更新所有数据
    2. svn log            //打印所有版本

二:冲突解决--------

out of data——

  • —>updata
  • —>commit

(手动解决冲突:postpone):

svn resolved name

有效的避免冲突:

  • 先updata->子啊修改文件
  • 或者修改文件之前和同事打招呼

补充:

当座位一个新?人加?入(李四进?入公司)

1.需要做的事情

    • 和项??目经理要svn的服务器地址/svn账号和密码 需求?文档 : 当前的需求
    • 接?口?文档 : 接?口?文档记录详细的服务器所有的接?口 效果图 : 界?面到底做成什么样?子

2.将服务器完整的代码下载到本地

  • svn checkout 服务器地址 ?用户名和密码

3.代码冲突

    • out of date : 过期
    • df : 在命令?行中给展?示所有的不同的地?方
    • e : 在命令?行编辑冲突
    • s : 展?示可解决冲突的选项
    • mc : 使?用我的代码,来覆盖服务器代码
    • tc : 使?用服务器的代码,来覆盖我的代码
    • p : 对?比所有的版本变化,?手动解决冲突—>svn resolved person.h

注意:

1>在修改公共?文件之前,最好先update,然后再修改
2>在修改公共?文件之前,可以和同事说?一声,先不要修改?文件,修改完之后让同事更

三:图形化界面(UI):Cornerstone/Version

这里简单介绍CornerStone的使用及注意点

--主界面--

实用Cornerstone需要注意的几个地方:

    • 1.查看日志

找到“Log”选项,选择并点击。
查看自己当前的版本是否是最新的,如果不是最新的版本,从第2步开始执行;
如果自己当前的版本是最新的,从第3步开始执行;

    • 2.更新到最新版本

当前程序员在打开工程项目之前,找到“Update to Latest Revision”选项,选择并点击。
目的:保持当前程序员客户端的项目版本是最新的。

    • 3.编辑项目
    • 4.提交之前,再次点击“Update to Latest Revision”,保持项目是最新版本。
    • 5.更新最新版本后,如果有错误,冲突等情况,解决,直到没错误!
    • 6.提交项目,找到“Commit Changes”选项,选择并点击。

目的:把当前编辑后的项目提交的服务器。

    • 7."lock"和“unlock”的使用

当我们正在编辑某个文件时,为了防止被其他人修改,可以在编辑之前,使该文件处于锁定状态,当我们编辑后,要提交的时候,再解锁。

    • 8.提交项目,都要写详细备注并署名。
    • 9.恢复到以前的版本,以前其他出错情况,请参考稍后的文档说明或上网搜索。

最后总结一下使用步骤

1.项??目经理初始化项??目
1>项??目经理将服务器已有的内容下载到本地

  • 记住选择正确的svn版本号—>1.7
    2>项??目经理创建项??目到code?文件夹
    3>项??目经理忽略掉?一些不需要的?文件
  • Xcode会帮我们记录当前正在编辑的?文件,下次打开时停留在该?文件
  • Xcode会帮我们记录??目录打开情况,同事不需要共享
    断点信息同事不需要共享,所有也需要忽略
    xcuserdata

2.使?用Xcode的svn注意点
1>当项??目中如果使?用到了静态库,必须使?用命令?行将静态库添加到svn管理之下
2>项??目中如果使?用storyboard,svn的管理也需要特别注意

  • 如果可以使?用xib那么尽量使?用xib
    保证同时只有?一个?人在修改storyboard

3.公司使?用svn技巧
尽可能修改?文件之前要update,写?一些代码之后就?立即提交到服务器
如果今天写了很多代码,建议在下班前半个?小时就提交.

cornerStone中三个基本目录的含义:tags,branch,truck

  • truck主分支,是用来做主方向开发的,一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch。
  • branch:是用来做并行开发的,这里的并行是指和trunk进行比较。
  • tag:是用来做一个milestone的,不管是不是发布版本,但都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读的标记。咱们ITOO1.0阶段开发完毕,就可以打一个tag,然后进入2.0的开发。tags的作用是将在branches上修改的bug的代码合并到trunk上时创建个版本标识,以后branches上修改的bug代码再合并到trunk上时就从tags的version到branches最新的version合并到trunk,以保证前期修改的bug代码不会再合并。

假设个例子,ITOO1.0开发完成,这个时候要做一个tag,tag_release_1_0,然后基于这个tag做发布,比如安装程序等。trunk进入 1.1的开发,但是1.0发现了bug,那么就需要基于tag_release_1_0做一个分支(branch),branch_bugfix_1_0,基于这 个branch进行bug修改,等到bugfix结束,做一个tag,tag_release_1_0_1,然后,根据需要决定 branch_bugfix_1_0是否并入主干(trunk)。

对于svn还要注意的一点,就是它是全局版本号,其实这个就是一个tag的标记,所以我们经常可以看到,什么什么release,基于xxx项目的 2xxxx版本。就是这个意思了。但是,它还明确的给出一个tag的概念,就是因为这个更加的可读,毕竟记住tag_release_1_0要比记住一个 很大的版本号容易的多。

SVN真的是一个很强大的工具,他很好的管理了我们的团队合作。

-----------------git-----------------

图形化界面(UI):Cornerstone/Version

这里只大致介绍sourceTree,毕竟在中国Git使用并不常见

SourceTree

作为一个懒人 Git的命令行我是不太爱的 所以GUI的工具就成了我的首选
Mac下的Git工具真是五花八门 著名的有Tower SmartGit等等(更多可以看下这里的介绍)

今天我们介绍的是SourceTree 出品方为Atlassian 旗下的产品还有著名的track工具JIRA Github的竞争者Bitbucket等等(这两个我也是经常用的 尤其是BitBucket 支持免费私有仓哦~)

SourceTree的特点如下

  • 免费
    SourceTree是免费使用的 只要简单的注册一下就好了
  • 跨平台
    Windows和Mac都可以用
  • 完美支持Github和Bitbucket
    我所有Github和Bitbucket上的项目都是用它来管理的 当然 公司的项目也是用SourceTree管理 无不干扰
  • 支持Git Flow
    Git Flow(翻译版)是一套关于Git的使用实践 现在已得到广泛的认可和推广 如果使用得当 开发管理的过程将变得更轻松和清晰

这是SourceTree的Repo列表界面 也是打开时的默认界面 这里可以对所有的Repo进行统一的管理 也支持分组这是SourceTree的Repo详情界面 这里是单独对某个Repo操作的地方 Git的所有操作你都可以在GUI上进行 非常的方便顺手

具体细节就请自己使用之后慢慢体会吧 这里就不多介绍了

-----------------Xcode-----------------

上面的SVN和Git其实都可以在Xcode中直接使用,如果你只是简单的实现提交和更新服务器仓库里面的代码,使用Xcode基本上就可以实现了,但是有的时候可能Xcode不能满足我们的要求或者相对比较麻烦,所以我们一般情况都不会立刻就选择Xcode的,除非项目很简单

下面是Xcode一些常用的版本控制操作简单列举:

选择对应的选项实现:

提交代码到服务器代码仓库(注释)

时间: 2024-10-18 12:36:04

iOS开发——开发实战篇&版本控制SVN和Git使用详解的相关文章

iOS开发——开发实战篇&版本控制SVN和Git简单实战总结

版本控制SVN和Git简单实战总结 如果你对iOS开发中的版本控制还不了解那么你可以先看看这篇(大致看一遍就ok) 关于版本控制使用起来并不难,但是可能你会遇到这样问题! 学了这么多命令,感觉自己都知道,而且基本上都能敲出一二,但是就是不轻松公司实际开发中到底要怎么用,或者我该怎么下手,下面我们就来看看我们到了公司之后首先要做的,和之后经常要做的一些事情(命令太多没必要去记,常用的也就那么几个). 首先,你必须先知道,在天朝,SVN目前任是主流,但是又不的不会(这里具体原因我就不多说了)! 好了

iOS开发- 版本控制SVN和Git使用详解

公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn----------------- 一:最常用基本步骤--- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发 svn checkout ip —uaerbane=? —password=?     //这里需要add 简:co 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突 svn updata               //这里的直

iOS开发——实战篇&Xcode 7真机测试详解

Xcode 7真机测试详解 1.准备 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk image 首先,准备好下面的设备机相关软件 MAC版本:OSX10.10.4 Xcode版本:Xcode7 beta5(点击下载) 真机设备:iPad Air(iOS 8.1.3)/iphone 6 2.首先先安装Xcode7,并且运行Xcode,点击左上角菜单Xcode -> Preferences

C# Xamarin移动开发项目实战篇

一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发项目实战篇>,阿笨将直接带领大家进入Xamarin for android的实战项目环节,真真体验一下xamarin开发的魅力吧. 由于阿笨学习Xamarin也是"半路出家","赶鸭子上架"的状态,视频教学中关于Xamarin for Android的知识点难免有

Android Widget 开发实例:桌面便签程序的实现详解和源码

桌面便签软件是Android上常用软件的一种,比如比较早的Sticky Note,就曾非常流行,而实际上使用android平台对widget开发的支持,桌面便签类软件是非常易于开发的. 本文通过逐步实现一个简单的桌面便签软件,和大家分享进行widget开发的过程和方法. 同时本程序提供完整的工程源码下载 免费下载地址在 http://linux.linuxidc.com/ 用户名与密码都是www.linuxidc.com 具体下载目录在 /pub/Android源码集锦/2011年/10月/An

农场游戏系统开发怎么做?丰乐惠农场游戏玩法详解。

一.丰乐惠牧场系统介绍 乌鸡 9.9元 每天收益1元 15天共收益15元 北京鸭 99.9元 每天收益9元 15天共收益135元 藏猪 699.9元 每天收益67元 16天共收益1072元 白羊 1699.9元 每天收益170元 17天共收益2890元 藏獒 3499.9元 每天收益350元 18天共收益6300元 二.动态奖励 1级:5% 2-3级:2% 4-12级:1% 13-15级:2% 三.全球分红 1.当天直推有效会员3人,享受平台当天总业绩的2%(均分) 2.当天直推有效会员6人,享

iOS回顾笔记(04) -- UIScrollView的基本使用详解

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

IOS中复制对象的用法及深拷贝和浅拷贝详解

亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程内容简介 我们软件是基于移动设备的.所以我们必然的选择了安卓作为我们的开发工具.课程中,我们将简要的介绍Android的基本概念,然后进行我们的实战开发.在开发中,大家讲学习到基本的组件,适配UI,数据的存储,多线程下载,开机广播,闹钟提醒,短信发送等实际项目开发中碰到的有用的知识点.通过课程学习,让大家能够掌握Android软件开发的流程,注意点,及优化.帮助大家迅速的掌握Andr

一步一步学ios UITextView(多行文本框)控件的用法详解(五5.8)

本文转载至 http://wuchaorang.2008.blog.163.com/blog/static/48891852201232014813990/ 1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: [csharp] view plaincopy #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDelegate> { UITe