因为公司需要用的SVN,而不是使用GIT,虽然知道GIT好使点,但是不能脱离大部队,于是开始SVN生涯。一开始使用的是Cornerstone,刚一周感觉这玩意还行,虽然没有git那么强大,但是勉强也还能过的去,一周之后就开始抽风式变态。提交代码之后同事那边居然取不下来了,有时候提交好几次才能提交上去,后来由于搬地方,服务器迁移了,同时换了新的svn地方,checkout整了一上午都拉不下来,中间卸载重装Cornerstone还是不行。于是我彻底对图形化界面失去了信心。最后选择了以终端的形式拉取提交代码。
1.从服务器下载到本地
svn checkout path(path表示服务器项目地址)注:checkout可简写co
2.其次你要知道这些符号表示的用意
(最常用见的是M、C,其次是?、C ,最后是K,几乎没见过)
?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定 U:更新
3.更新
(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
svn update path ( 简写:svn up)
例如:
4.查看文件或者目录状态
5.将改动的文件提交到版本库
svn commit -m “注释” (简写 svn ci)
使用注意:
- 提交之前先svn up(这个很重要,在团队开发的情况下,每次提前都要svn up一下)
- 执行svn commit -m “注释” 之前先执行svn status(简写st)查看当前目录状态
- 如有添加的或者有删除的则先执行svn add path或者 svn del path
-
最后再执行svn commit -m “注释”
6.将新添加的文件提交到版本库
svn add path(path 添加路径)
使用注意:
- add之前先svn up(这个很重要,在团队开发的情况下,每次提前都要svn up一下)
- 接着执行svn status(简写st)查看当前目录状态
- svn add path (文件路径)
- svn commit -m “注释”
示例:
7.将删除的文件提交到版本库
svn del path(path 添加路径)
使用注意:
- add之前先svn up(这个很重要,在团队开发的情况下,每次提前都要svn up一下)
- 接着执行svn status(简写st)查看当前目录状态
- svn del path (文件路径)
- svn commit -m “注释”
示例:
使用过程中遇到的问题总结:
问题一: 表示重名了 改下项目之前的名字 然后新建一个 目录
例如:
问题二:删除没有用的图片
如果执行 svn delete path 报错E20009了 则需在后面加@符号
例如:svn delete LYYGame/Resourse/Image/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png@
问题三: svn 回退
今天执行了一个 svn add * 的命令 ,结果吧pod都提交了,然后这是我不想看到的结果
解决方式:
svn revert --depth=infinity Path (Path表示Pod路径)
例如:svn revert --depth=infinity /Users/huahua/Desktop/Partner_ios/Pods
我们想要看到的结果