背景:
项目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是把服务器上最新的版本更新下来,比如别人上传的版本(一般提交之前需先更新,否则别人上传的新版本你没有更新下来就会被覆盖,别人上传的就丢失了)
















