在平时的工作中我们大多数情况下喜欢使用Tortoise SVN之类的可视化版本控制工具,但笔者发现,命令行的方式进行版本控制在执行速度上将会更快一些。尽管在大多数情况下使用命令行并不是很方便,但只要用户习惯了,就非常顺畅了。针对于文件比较则还是可视化的会更加清晰一些。笔者下方展现了常用的SVN命令,供读者查用。
svn checkout svn://xxx.com/xxx/xxx
svn update
svn commit -m "提交描述"
svn add filename
svn add *.PHP
svn add . --no-ignore --force
- 查看指定文件的所有log
svn log test.PHP
- 查看指定版本号的log
svn svn log -r 100
svn revert test.PHP
svn revert -r 目录名
- 撤销目录下所有本地修改
svn revert --recursive 目录名
- 查看当前工作区的所有改动
svn diff
svn diff test.PHP
- 指定版本号比较差异(命令中的数字是版本号)
svn diff -r 200:201 test.PHP
- 查看当前工作区和版本301中bin目录的差异
svn diff -r 301 bin
- 查看当前工作区的状态
svn status
- 查看svn信息
svn info
svn ls
svn ls -r 100
svn blame filename.PHP
svn cat test.py -r 2
- 清理,这个命令我们经常在svn出现报错时可以执行一下,这样就会清理掉本地的一些缓存
svn cleanup
svn mkdir spool
svn propset svn:ignore '*' spool
svn ci -m 'Adding "spool" and ignoring its contents.'
svn mkdir spool
svn propset svn:ignore 'spool' .
svn ci -m 'Ignoring a directory called "spool".'
- 切换当前项目到指定分支。服务器上更新新版本我们经常就用这个命令来把当前代码切换到新的分支
svn switch svn://xxxx.com/test/branches/online1.0
svn switch --relocate 原svn地址 新svn地址
- 创建分支,从主干创建一个分支保存到branches/online1.0
svn cp -m "描述内容" http://xxxx.com/repos/trunk http://xxxx.com/repos/branches/online1.0
- 合并主干上的最新代码到分支上
cd branches/online1.0
svn merge http://xxxx.com/repos/trunk
- 分支合并到主干
svn merge --reintegrate http://svnbucket.com/repos/branches/online1.0
- 删除分支
svn rm http://xxxx.com/repos/branches/online1.0
- 查看SVN帮助
svn help
- 查看指定命令的帮助信息
svn help commit
- 递归清理工作拷贝,一般出现无法更新的时候检查一下是否有些文件被锁上了,用它来清楚锁,达到后续更新的有效性
svn cleanup [PATH...]