1、安装VisualSVN软件
用于搭建服务器,添加仓库和配置用户信息权限等操作(项目经理需要做的,员工一般不用)
2、终端指令
常用命令行及简写:- 下载项目:svn checkout -> svn co - 提交代码:svn commit -> svn ci **常用**- 更新代码:svn update -> svn up **常用**- 删除文件:svn remove -> svn rm- 查看版本信息:svnlog- 查看文件状态: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 先从服务器更新一下最新内容 svnlog再查看提交的各版本信息
代码冲突
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 . . .]](http://upload-images.jianshu.io/upload_images/2068665-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
作者:木头Lee
链接:https://www.jianshu.com/p/97a65b0921ce
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。