iOS-SVN、Git
- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发
- 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突
- 写代码。。。。。。。。。。。。。
- 查看状态
- 添加到仓库
- 提交项目
svn commit -m “注释"
简:ci
- 版本回退:错误操作,需求更改,查看历史
- svn update
- svn merge -r 版本号(现):版本号(前) name
- svn ci -m “注释"
- 移除文件
- 查看版本号
- svn updata //先更新所有数据
- svn log //打印所有版本
- —>updata
- —>commit
- 先updata->子啊修改文件
- 或者修改文件之前和同事打招呼
- 和项⺫⽬目经理要svn的服务器地址/svn账号和密码 需求⽂文档 : 当前的需求
- 接⼝口⽂文档 : 接⼝口⽂文档记录详细的服务器所有的接⼝口 效果图 : 界⾯面到底做成什么样⼦子
2.将服务器完整的代码下载到本地
- svn checkout 服务器地址 ⽤用户名和密码
- out of date : 过期
- df : 在命令⾏行中给展⽰示所有的不同的地⽅方
- e : 在命令⾏行编辑冲突
- s : 展⽰示可解决冲突的选项
- mc : 使⽤用我的代码,来覆盖服务器代码
- tc : 使⽤用服务器的代码,来覆盖我的代码
- p : 对⽐比所有的版本变化,⼿手动解决冲突—>svn resolved person.h
- 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,写⼀一些代码之后就⽴立即提交到服务器 如果今天写了很多代码,建议在下班前半个⼩小时就提交.
- 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真的是一个很强大的工具,他很好的管理了我们的团队合作。
- push:提交到服务器
- pull:更新
- clone:完整下载
- commit:本地提交
- git init
- git config user.name “why”
- git config user.email “why@163.com”
配置⼀一个全局的⽤用户名和邮箱
- git config —global user.name “why”
- git config —global user.email “why@163.com” 3.初始化项⺫⽬目
- touch main.m : 创建了main.m
- git add main.m : 将新添加的⽂文件或者修改的⽂文件添加到暂存区
- git commit -m “初始化项⺫⽬目”
- git add . : 将所有没有被添加到暂存区或者代码仓库的⽂文件添加到暂存区
注意:⽆无论是新添加的⽂文件或者修改的⽂文件,都需要先通过add命令添加到暂存区中, 之后再通过commit命令添加到本地仓库中
- 红⾊色 : 新创建的⽂文件或者被修改的⽂文件,没有被添加到暂存区
- 绿⾊色 : 表⽰示⽂文件在暂存区,但是没有被添加到本地仓库中 5.给命令起别名
- git config alias.st “status”
- git config alias.ci “commit -m”
- git config —global alias.st “status”
6.git删除⽂文件 git rm ⽂文件名
7.查看版本号 git log
- git reflog
- git config --global alias.lg "log --color --graph -- pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit” git lg
8.git的版本号是由sha1算法⽣生成40位的哈希值 9.版本回退
- git reset —hard HEAD : 回退到当前的版本
- git reset —hard HEAD^ : 回退到上⼀一个版本 git reset —hard HEAD^^ : 回退到上上个版本 git reset —hard HEAD~100 : 回退到前100版本 git reset -hard 版本号(前5位)
二.团队开发—共享版本库
- 真实的GIT服务器的搭建,是⾮非常繁琐的事情(Linux)
- 一个⽂文件夹
- 优盘
- 将代码托管到别⼈人的服务器(Github/OSChina)
2.项⺫⽬目经理将共享版本库的内容先下载下来 git clone 地址
3.添加需要忽略的⽂文件
- touch .gitignore 去github上搜索.gitignore->Objective-C git add .gitignore
- git commit -m “添加了需要忽略的⽂文件”
4.项⺫⽬目经理初始化项⺫⽬目
- git commit -m “初始化项⺫⽬目”—>提交到本地代码仓库
5.将项⺫⽬目push远程仓库中 git push origin
6.当源代码管理是使⽤用GIT,并且在Xcode进⾏行多⼈人开发的操作 注意:当使⽤用GIT,项⺫⽬目中⽤用到了静态库就不需要通过命令⾏行进⾏行添加
三.版本备份(了解) 1.1.0版本开发完成,之后对1.0版本进⾏行备份
- git tag -a weibo1.0 -m “这个是1.0版本” : 给某⼀一个版本打上标签
- git tag : 查看所有的标签 2.需要将1.0版本的标签,push到服务器
- git push origin weibo1.0
3.继续开发2.0版本
4.发现1.0版本有bug,从标签⾥里⾯面clone 1.0版本,从标签创建⼀一个fixbug分⽀支,在分 ⽀支中修复bug
- git clone 共享版本库
- git checkout weibo1.0(标签的名称)
- git checkout -b weibo1.1fixbug(分⽀支名称)
5.修复后的版本上传AppStore/将1.0fixbug进⾏行备份/将1.0fixbug版本和2.0版本 进⾏行合并\
- git tag -a weibo1.1 -m “这个是修复了1.0版本bug的1.1版本”
- git tag
- git push origin weibo1.1 将⼦子分⽀支中代码合并到主分⽀支,pull—>weibo1.1fixbug—>push master—>其 它同事更新
6.删除分⽀支
- git branch -r
- git branch -r -d 分⽀支名称
四.将代码托管到别⼈人的服务器⾥里⾯面 1.Github
创建Github上的仓库
- 1) HTTPS : http + SSL
- 2) SSH : 公钥和私钥—>settings—>SSH Keys—>⽣生成公钥和私钥 删除代码仓库 可以给别⼈人的代码提⽐比较功能/对别⼈人的代码重构:fork—>pull Request issues : 给框架作者提问题
- 2.OSChina(Github上⾯面项⺫⽬目不能私有化:交钱可以) 创建代码仓库
HTTPS/SSH
.gitignore不够完整 : ⼿手动添加完成 如果项⺫⽬目想要多⼈人开发:管理—>成员管理—>添加成员:让新⼈人注册⼀一个 OSChina
SourceTree
作为一个懒人 Git的命令行我是不太爱的 所以GUI的工具就成了我的首选
Mac下的Git工具真是五花八门 著名的有Tower SmartGit等等(更多可以看下这里的介绍)
今天我们介绍的是SourceTree 出品方为Atlassian 旗下的产品还有著名的track工具JIRA Github的竞争者Bitbucket等等(这两个我也是经常用的 尤其是BitBucket 支持免费私有仓哦~)
SourceTree的特点如下
iOS-SVN、Git的更多相关文章
- CVS、SVN、Git、GitHub :版本控制系统
1 1 1 Git常用命令 1 1 1 1 1 1 https://www.codecademy.com/learn/learn-git Learn Git You have now been int ...
- ubuntu搭建svn、git遇到的问题及解决办法
不错的git笔记博客: http://www.cnblogs.com/wanqieddy/category/406859.html http://blog.csdn.net/zxncvb/articl ...
- svn、git等比较---总结
免费的版本控制系统: CVS:集中式的版本控制系统,必须联网,速度慢,CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用.由于CVS自身设计的问题,会造成提交文件不完整,版本库莫 ...
- SVN 、Git、Github的使用
1.1 SVN 总结以及使用建议 每一次保存历史记录实际上就是一次提交 什么时候去保存历史记录? 完成了一个具体的功能模块 代码运行没有bug 当天工作结束提交一次 没有 bug 的前提下去提交一次 ...
- Eclipse 安装插件(aptana、svn 、git、Java EE、JSHint)
转发9 1.安装 aptana 插件: * 依次点击:Help -> Install New Software... -> Add * 输入:http://download.aptan ...
- 版本控制(svn、Git)环境创建
1.SVN 2.Git last 版本控制工具应该具备的功能: 协同修改: 数据备份: 版本管理: 权限控制: 历史记录:查看修改人.修改时间.修改内容…… 分支管理:开发团队在工作过程中多条产品线同 ...
- SVN、Git设置提交时忽略的文件
个人正在使用的:global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo [Tt]humbs.db [Bb]in [ ...
- SVN、GIT比较
Git是分布式的,完全可以不备份代码,下载下来后,在本地不必联网就可以看到所有的log,跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并,也可以不用联网在本地提交 SVN ...
- 配置SVN、GIT总结
SVN使用说明 svn地址(可以是内网,也可以是外网的):svn://192.168.3.1/xxxhttp://192.168.3.1/xxxhttps://192.168.3.1/xxx 一个sv ...
- 免费SVN、Git项目托管主机推荐
Unfuddle 200MB的免费空间,界面友好,特性丰富,支持Git,但只能一个账户一个用户并且只允许一个项目,付费服务相对来说价格偏高 CodeSpaces 500MB,一个账户两个免费用户,付费 ...
随机推荐
- html 表格的制作
表格的制作 表格<table></table> <table width="" height="" align=" ...
- android笔记:ViewPager实现界面的滑动
最近在学习ViewPager实现界面的滑动,拜读了郭神的博客文章,并抽取归纳了自己对ViewPager的理解. ViewPager实现界面滑动的步骤如下: 1.在xml布局内加入控件android.s ...
- extjs,清空treepanel数据。
extjs,清空treepanel数据. //调用 var rootNode = tree.getRootNode(); removeChildrenData(rootNode); //清理节点的数据 ...
- NGUI 便捷的显示与隐藏界面
所有的UI都继承自class UIBase,可以把UI做成预设体,同个场景下,读取预设体时,将子UI对象都保存在类似Dictionary<UIType, UIBase>这样的结构中,这样的 ...
- 手动开启/关闭Oracle数据库
@echo off@echo 启动/关闭数据库set /p flag=您是否要启动数据库?(是按Y启动,否按N关闭) goto answer%flag% goto end :answery echo ...
- 网页中的JavaScript
变量的声明和赋值 var count;定义变量 count = 5;赋值 var” - 用于声明变量的关键字 “count” - 变量名 同时声明和赋值变量 var count = 10; 声明多个变 ...
- 电梯多媒体WinForm项目Q&A总结
最近,我给一家公司做了个电梯多媒体软件,该软件使用C#编写,现在我将其中遇到的问题及其解决方法总结一下,以便下次再遇到同样的问题可以快速解决:同时,也给博友分享一下,共同学习,共同提高. 1.Ques ...
- VS经常报错的link error 2019
VS经常报错的link error 2019 原因如下: 可能是找得到头文件,但是相关的dll或者lib找不到,需要在配置里面添加相应的库文件. project=>configuration.. ...
- 20145318赵一Java课程总结
20145318赵一Java课程总结 每周读书笔记链接汇总 问卷调查 第1周读书笔记 第2周读书笔记 第3周读书笔记 第4周读书笔记 第5周读书笔记 第6周读书笔记 第7周读书笔记 第8周读书笔记 第 ...
- perl 对源文件内容修改 方法整理
1, 利用Tie::File模块来直接对文件内容进行修改. #!/usr/bin/perl -w my $std="F160"; my $fast="FAST" ...