一、SVN命令行演示
1.将服务器已有的项目下载到本地
svn checkout 服务器地址 –username=*** –password=***
2.初始化项目
1.touch main.m:创建main.m文件;
2.svn add main.m:将main.m添加到svn的管理之下;
3.svn commit -m “描述” main.m:将main.m上传到服务器;
3.查看文件状态(查看文件是否在svn的管理之下,或者是否进行了修改而没有提交)
svn status
- ?:文件不在svn的管理之下;
- A:该文件已经添加到svn的管理之下,但是该文件在本地,并没有提交到服务器;
- M:该文件在本地已经修改,但是没有上传到服务器;
- D:该文件已经在本地删除,但是服务器依然有该文件,删除操作没有更新到服务器;
- G:产生冲突后,更新操作去解决冲突,相当于合并;
4.命令行的简写
1.svn checkout –> svn co
2.svn status –> svn st
3.svn commit –> svn ci
4.svn update –> svn up
5.版本回退
5.1 已经提交到服务器的进行回退
- 1.svn update -r6:先回退到服务器中的某个版本(前面的6就是版本号),看该版本是不是自己想要回退的版本;
- 2.svn update :更新到最新的版本;
- 3.svn merge -r7:6 person.h :就是将person.h文件从版本7回退到版本6;
- 4.svn commit -m “描述信息” :将回退的版本上传到服务器;
5.2 只是本地新增的,还没有更新到服务器的回退
- 1.svn revert person.h:将本地新增的内容(没有更新到服务器的内容)删除;
6.删除文件
- svn remove person.m:上传本地文件,也就是说服务器中还是存在的
2.svn commit -m “描述信息” :上传到服务器;
7.查看版本信息
1.svn update :更新服务器最新的内容到本地,防止查出的信息过期
2.svn log
8.版本冲突
- 1.直接使用svn commit -m “描述”,如果出现out of date:过期,说明本地的版本低于服务器的版本,必须先使用svn update命令;
- 2.使用svn update出现 conflict discover 说明出现本地和服务器产生冲突
1.df:diff-full—>在命令行中展示所有的不同;
2.e:edit—->在命令行中来编辑(一般不建议这样使用,通常在开发工具中来解决),解决后在命令行中使用r:remove命令告诉服务器解决完毕;
3.mc:mine-conflict—>用我的本地代码来覆盖服务器的代码;
4.tc:theirs-conflict—>用服务器的代码来覆盖我的代码;
5.p:postpone—->延迟解决冲突,它会展示所有的冲突文件,在本地手动解决冲突;解决后,必须使用svn resolved 文件名 命令,然后使用svn commit -m “描述” 上传到服务器,然后冲突的另一人使用svn update更新即可;
注意 有效的避免冲突方式:
1.尽量在修改文件之前,先update
2.如果修改公共文件,最好先和同事沟通一下,让他先别修改,修改完后,通知其更新下
9.在xcode中使用svn的注意点
1.如果使用到静态库需要特别注意,必须使用命令行将静态库添加到svn的管理之下;
2.如果使用到storyboard也特别注意;同时修改一个sb文件会冲突;能使用xlib的尽量使用xlib;如果在项目中使用了sb,尽量保证一个人在使用;