背景:

项目SVN迁移,涉及到本地部署调整。



基本命令:

1. svn help

2. svn st

3. svn co svn_url  [可选参数用如下命令查看]

4. svn help co / ci / cl ...

5. svn up -r 版本号

6. svn info : 查看仓库信息

7. svn ci -m '提交信息说明'  (. 或者 具体文件,前者代表全部提交)

8. svn revert filename      // 撤销对文件 filename 的修改

9. svn diff file1    // 对比文件与最近的svn 库中文件的变化

10. svn log -l  数字      // 显示最近的几条日志

 

其他:

# 忽略一类文件的版本控制
$ cd  ~/.subversion
$ vi config
  global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store ._* *.log *.bak node_modules

 

#svn ignore 的用法(忽略文件及目录)
#若想创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容:

$ svn mkdir spool 
$ svn propset svn:ignore '*' spool 
$ svn ci -m 'Adding "spool" and ignoring its contents.'

#若想创建一个文件夹,但不加入版本控制,即忽略这个文件夹:

$ mkdir spool 
$ svn propset svn:ignore 'spool' . 
$ svn ci -m 'Ignoring a directory called "spool".'

#若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:

$ svn export spool spool-tmp 
$ svn rm spool 
$ svn ci -m 'Removing inadvertently added directory "spool".' 
$ mv spool-tmp spool 
$ svn propset svn:ignore 'spool' . 
$ svn ci -m 'Ignoring a directory called "spool".'

SVN中检出(check out)、导出(export)、导入(import)、add(添加)、update(更新)的区别 

区别:

1.check out检出获得文件后,检出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。(对于导入到服务器中的数据,需要检出才能形成一个受svn控制的工作拷贝,才可以进行 add update commit 等操作)

2.export 简单导出一个版本的数据(把服务器中的数据导出来,相当于复制一份),导出的文件脱离SVN版本控制(导出的就是一个文件,与svn版本没关系),导出后也无法进行Update和Commit操作。导出文件夹下没有.svn目录

3.import仅仅是把文件导入到svn服务器中,而这个文件本身还只是一个普通的文件,与svn版本库没有关系(导入时需要svn服务器的地址,可以从服务器复制下来,在Repositories下的版本库右击复制)

4.add是把新创建的文件添加到缓存区(执行后显示一个加号),需commit提交才能真正上传到服务器(显示对号)

5.update是把服务器上最新的版本更新下来,比如别人上传的版本(一般提交之前需先更新,否则别人上传的新版本你没有更新下来就会被覆盖,别人上传的就丢失了)