SVN 命令行简易教程

SVN 基础概念

SVN 是一种版本管理系统(VCS),VCS 可以完成以下的事:

  • 允许多人同时在一个项目中工作

  • 不会重写每个人的修改

  • 可以保持每个版本的全部历史

VCS 可以分为中心化版本控制系统和分布式版本控制系统,SVN 属于中心化的版本控制系统。

SVN 的相关概念:

  • 仓库:SVN 只有一个仓库,就是中心仓库,所有人的提交都会提交到这里
  • 主干:trunk,这里存放项目代码或相关文件
  • 标签:tags 用于标示项目中呗命名的快照
  • 分支:用于创建项目的一个一个分支,可以在新的分支上继续工作,一个项目可以有多个分支
  • 工作副本:将项目从仓库拉取到本地之后,就是一个工作副本

SVN 命令行操作

svn 在使用的过程中主要包括如下的过程:

从仓库获取阶段

从仓库检出代码

1
$ svn checkout svn://gitee.com/XXX/svn_test_items --username=leijun19930412@sina.com

查看 SVN 信息:

1
$ svn info

查看提交历史:

1
$ svn log

从仓库更新代码

1
$ svn update

工作副本阶段

查看工作副本状态:

1
$ svn status

查看文件变化: 可以查看单个文件和单个文件夹的变化,也可以查看整个项目的变化。

1
$ svn diff

添加全部新增文件: 会忽略 svn.ignore 的文件,也可以只添加单独的文件和目录

1
$ svn add . --force

添加文件或者目录到 ignore:

1
$ svn propset svn:ignore fileOrdir ./

解除项目的ignore:

1
$ svn add fileOrDir --no-ignore

放弃文件的修改: 如果想放弃某个文件的修改

1
$ svn revert hello.c

如果想放弃整个目录的修改:

1
$ svn revert -R dir

如果想放弃整个项目的修改:

1
$ svn revert -R .

解决文件冲突:

  • 将代码与仓库同步

1
$ svn update

  • 查看冲突的文件

1
$ svn status

  • 手动合并被标示为 C 的文件
  • 然后解决冲突

1
$ svn resolve --accept=working filename

新建tag:

1
$ svn copy --revision=version(版本号) trunk/ tags/tag_name

分支: 新建分支:

1
$ svn copy trunk branches/branch_name

合并分支:

1
$ svn merge  brancjes/branch_name

提交更改阶段

提交文件的修改

1
$ svn commit -m "Update"

微信公众号

© 2018 ray