前言
由于公司的电脑环境是windows7,所以大部分使用 TortoiseSVN 来操作 svn.
后来,我安装了 Cygwin 和 Xshell . 这样就可以像在 Linux 下一样工作了。
但是遇到一个问题,就是使用svn管理项目。
现在学习一下基本操作。
开始
从服务器拉取数据
如果你用过git的话,应该知道直接clone即可。
在svn中成为 checkout。
人们常把 checkout 简称为 co 。
svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn
等价于
svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
其中 username 与 password前是两个短线,不是一个。
不指定本地目录全路径,则检出到当前目录下。
添加文件
添加了新的功能,肯定需要加进本地svn了。
svn add 文件名
如果是一个目录,以前还加过这个目录,那就需要加个 --force 参数。
这样就可以把目录里没加进去的文件加进去了。
提交
做一个项目,最后需要走了或者功能需要保存一个节点了,那就需要提交到服务器上去了。
svn commit -m "提交备注信息文本" [-N] [--no-unlock] 文件名
commit 可以缩写为 ci.
更新本地数据
一般一个项目是多个人一起做的,所以同伴会提交数据。
我们需要拉去他们的数据时,就用到这条命令了。
svn update 文件名
删除文件
以前加了某个文件,现在不需要了,那就要把它从服务器上删除了。
svn delete 文件名
加锁/解锁
这个操作比较少,但是可能会遇到文件被加锁,这个时候就需要自己手动解锁了。
svn lock -m “加锁备注信息文本“ [--force] 文件名 svn unlock 文件名
比较差异
这个比较常用。比较这个版本与上个版本的差异。
svn diff 文件名 svn diff -r 修正版本号m:修正版本号n 文件名
查看文件或者目录状态
svn status 目录路径/名
查看日志
svn log 文件名
查看文件详细信息
svn info 文件名
恢复本地修改
svn revert [--recursive] 文件名
解决冲突
svn resolved [本地目录全路径]
导出项目
有时候需要把项目复制一份,这个时候简单的复制会把 svn 的文件也复制过去,这时我们就像复制一份纯净的项目。
svn export [-r 版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名