1、安装VisualSVN软件
用于搭建服务器,添加仓库和配置用户信息权限等操作(项目经理需要做的,员工一般不用)
2、终端指令
常用命令行及简写:
- 下载项目:svn checkout -> svn co
- 提交代码:svn commit -> svn ci **常用**
- 更新代码:svn update -> svn up **常用**
- 删除文件:svn remove -> svn rm
- 查看版本信息:svn log
- 查看文件状态:svn status -> svn st
常见文件状态
- ? : 不在svn的管理之下
- A : 该文件在已经添加到svn的管理之下,但是只是保存在本地,并没有提交到服务器
- M : 该文件在本地已经被修改,但是没有传到服务器
- D : 该文件在本地已经删除,但是服务器依然有该文件,删除操作没有更新到服务器
- C:产生冲突
- I :该文件已经被忽略
- ! : 文件丢失或不完整(无法识别该文件)
- G :产生冲突后,更新操作去解决冲突相当于合并
- 项目经理操作
-
从服务器下载配置内容:
svn checkout服务器项目地址
--username=用户名
--password=密码
-
初始化项目
创建项目 : touch项目名
添加到svn的管理 : add项目名
将项目上传服务器 : svn commit -m “提交内容的注释 ” -
员工A加入开发
-
将服务器内容下载到本地
svn checkout服务器地址
--username=用户名
--password=密码
-
开始开发
创建文件 : touch 文件名
提交到服务器 : svn commit -m “提交内容的注释” -
项目经理更新代码
svn update(如果该文件已经在本地则更新,不在本地则下载)
-
新员工B加入开发
1、向项目经理要一些东西
- SVN服务器地址、账号及密码
- 需求文档 : 项目有什么需求,要实现什么功能
- 接口文档 : 详细的记录服务器所有接口
- 效果图: 界面最终要实现什么样的效果
2、开始开发
- 将服务器已有的内容下载到本地:
svn checkout服务器地址
--username=用户名
--password=密码
- 创建文件:
touch文件名
- 将创建文件添加到SVN管理
(*代表将文件夹内所有文件添加到SVN管理)
:
svn add * - 提交到服务器
svn commit -m “提交内容的注释(说明)
”
- 版本回退
1、 svn update -r版本号
先回退到某个版本,确认下该版本是否是自己打算回退的版本
2、 svn update :
将本地文件更新到最新版本
3、 svn merge -r最新版本号
:要回退版本号
person.h
将两个版本进行合并
4、svn commit -m “回退到某版本
”
重新提交服务器
- 删除文件
-
svn remove
文件名
-
svn commit -m “
删除了某个文件
” -
查看版本信息
svn update
先从服务器更新一下最新内容
svn log
再查看提交的各版本信息
- 代码冲突
- out of date : 过期,本地版本号低于服务器的版本
- df : 在命令 中展 所有的不同
- e : 在命令 中来编辑冲突
- mc: 使用我的本地的代码来覆盖服务器的代码
- tc : 使用服务器的代码来覆盖我的代码
- p : 延迟解决冲突,展示所有冲突的文件, 手动解决冲突: svn resolved person.h
注意: 1 > 尽量在修改文件之前,先update 2 >如果修改公共文件,最好先跟同事打招呼,让他先别修改,修改完之后,让他更新
3、图形化界面: CornerStone
-
项目经理操作:
-
界面概览
Snip20160806_3.png -
添加远程服务器仓库
Snip20160806_5.png -
将服务器仓库代码checkout到本地
Snip20160806_7.png -
选择保存到本地的路径
Snip20160806_8.png -
通过xcode创建项目保存到刚才checkout的本地路径
Snip20160806_9.png -
将文件添加到SVN管理(手动点击?号)
Snip20160806_10.png -
Commit初始化
Snip20160807_11.png
![Uploading Snip20160807_11_748844.png . . .]](https://img.haomeiwen.com/i2068665/7c5ca669c9495d9e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) -
配置忽略文件
Snip20160807_19.png
需要忽略的文件
-
xcode会默认记录之前停留文件,下次打开依然停留在该文件,这个不需要共享
-
xcode会默认记录之前目录的打开情况,同事不需要,没必要共享
-
在代码中打的断点信息,不需要进行共享
-
在xcode可以进行上面3点操作,让它生成新的xcuserdata数据,然后再忽略一下即可
Snip20160807_26.png -
忽略掉文件之后先update一下然后再commit即可
Snip20160807_28.png -
员工A加入开发
-
先添加服务器仓库
Snip20160807_30.png -
将仓库代码checkout到本地
Snip20160807_31.png -
然后就可以打开项目开始开发了,后面的Commit和update操作直接在Xcode里面即可
(Xcode工具栏—> Source Controller—>CheckOut/update)
-
冲突解决
-
当在xcode内Commit代码的时候,提示如下信息:
Snip20160807_32.png -
先update一下本地代码,解决冲突
Snip20160807_33.png -
再Commit到服务器
4、使用Xcode CheckOut代码
-
在偏好设置添加远程代码仓库
Snip20160807_34.png
Snip20160807_38.png -
然后再使用xcode工具条的Resource Control进行checkout代码操作
Snip20160807_39.png -
后面就是正常的Commit和update操作了...
5、Xcode中使用svn的注意点:
-
1、如果使用到静态库必须使用命令行将静态库添加到svn的管理之下
-
2、如果在项目中能使用xib,尽量使用xib;如果必须使用storyboard,尽量保证只有一个人在操作storyboard
网友评论