SVN的基本用法
简介
SVN是一个开源的版本控制系统,与著名的git所做的事情是一样的。数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
几个概念:
- repository(源代码库):源代码统一存放的地方
- Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
- Commit(提交):当你已经修改了代码,你就需要Commit到repository
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
日常开发过程其实就是这样的:在最开始Checkout一份源代码到本地 –> 在每次开发之前Update(获得最新的代码) –> 作出自己的修改并调试成功 –> Commit(大家就可以看到你的修改了)。
检出(checkout)
Checkout 操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中。
命令例子:
svn checkout svn://192.168.0.1/runoob01 --username=user01
更新(update)
当服务器上的版本库作了更改,需要使用update命令将本地的副本更新到最新版本。只有更新之后本地的更改才能提交到版本库。
命令例子:
svn update
执行变更
将更改提交到版本库。
命令例子:
svn commit -m "SVN readme." # -m后面是本次提交的说明
svn status 查看工作副本的状态
svn add 将新建的文件添加到版本控制
版本回退
当我们想放弃对文件的修改,可以使用 SVN revert 命令。svn revert 操作将撤销任何文件或目录里的局部更改。
revert 操作不单单可以使单个文件恢复原状, 而且可以使整个目录恢复原状。恢复目录用 -R 命令,如下:
svn revert -R dir_name
假如我们想恢复一个已经提交的版本怎么办。为了消除一个旧版本,我们必须撤销旧版本里的所有更改然后提交一个新版本。这种操作叫做 reverse merge。首先,找到仓库的当前版本,现在是版本 22,我们要撤销回之前的版本,比如版本 21。
svn merge -r 22:21 file_name
查看历史信息
可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:
- svn log: 用来展示svn 的版本作者、日期、路径等等。
- svn diff: 用来显示特定修改的行级详细信息。
- svn cat: 取得在特定版本的某文件显示在当前屏幕。
- svn list: 显示一个目录或某一版本存在的文件。
分支
svn命令都是可以直接操作远程仓库的,包括创建分支(copy)、合并分支(merge)、列出文件(list)等。
创建分支:使用copy,例如,svn copy trunk/ branches/my_branch
合并分支:例如,svn merge ../branches/my_branch/ 将my_branch合并到当前目录所在分支