2016 February 16 Developer
集中式版本控制工具王者——SVN
SVN status 显示的文件状态
状态 | 说明 |
’ ‘ | 没有修改 |
‘A’ | 被添加到本地代码仓库 |
‘C’ | 冲突 |
‘D’ | 被删除 |
‘I’ | 被忽略 |
‘M’ | 被修改 |
‘R’ | 被替换 |
‘X’ | 外部定义创建的版本目录 |
’?’ | 文件没有被添加到本地版本库内,不在SVN的管理之下 |
’!’ | 文件丢失或者不完整(不识别该文件) |
’~’ | 受控文件被其他文件阻隔 |
‘U’ | 更新最新的代码到本地(本地有文件的情况下) |
‘G’ | 产生冲突后,更新操作去解决冲突,相当于进行合并 |
常规操作
1) 下载服务器的代码到本地
2) 向本地的版本控制库中添加文件
3) 将改动的代码提交到服务器
4) 更新服务器的代码到本地
5) 查看文件状态
6) 撤销之前的一切修改(还原到当前版本)
添加/删除
1) 添加
2) 删除
svn delete/ svn remove
svn commit
//一定不要手动删除文件
版本回退
svn revert
//作用:返回到上次提交后版本对应的最原始的状态
svn update
//作用: 将本地代码更新到与服务器相同的版本
svn merge 文件名 -r 版本1(最新版本号):版本2(需要回退到的版本号)
//作用:让某文件从版本1 回到 版本2
svn commit -m “本地和服务器都回退到某一指定版本”
//作用: 让服务器代码也退回到之前某个版本状态
使用xcode的SVN注意点
- 在xcode拖入静态库后SVN不识别,需要通过命令行添加到SVN的管理之下
- 1.将静态库拖入项目中,发现.a文件为I,表示被忽略了,提交的时候并不会提交该.a文件
- 2.重新加入到SVN管理之下,打开终端,来到静态库目录下,输入命令添加 svn add libRegex
- 3.将添加的静态库提交到服务器(source control -> commit)
- 使用storyboard或者xib避免冲突的注意点
- 1.因为公司都是分模块开发,能用xib的情况下不要用storyboard
- 2.每次保证只有一个人在修改storyboard,否认多人修改容易引起冲突
尽量避免冲突的技巧
- 1.尽可能在在修改文件之前先update
- 2.写一些代码立即提交到服务器,时时保持与服务器同步
- 3.尽量在下班前半小时提交所有的代码,留有半小时时间一旦产生冲突可以一起解决冲突
项目经理初始化项目
1) 需要忽略的文件
1.xcode默认有个功能,会记录上次正在编辑的界面(比如在appdelegate界面,这个时候xcode关闭再打开,还会停留在该界面)
2.xcode会记录左侧目录的打开情况,下次再打开时还是这样的打开情况
3.xcode会记录断点信息,下次打开时还有着之前的断点
4.以上都会产生相应的文件在xcuserdata文件夹下
2) 忽略文件的步骤
1.先右键删除,然后上传删除操作到服务器,目的是不让svn再去管理该文件
2.xcode中做些操作重新来生成xcuserdata,这个时候状态为?
3.右键ignore忽略来忽略该文件夹,设置信息发生变化,需要先进行update操作
4.将忽略操作提交到服务器