SVN 命令行简易教程
SVN 基础概念
SVN 是一种版本管理系统(VCS),VCS 可以完成以下的事:
-
允许多人同时在一个项目中工作
-
不会重写每个人的修改
-
可以保持每个版本的全部历史
VCS 可以分为中心化版本控制系统和分布式版本控制系统,SVN 属于中心化的版本控制系统。
SVN 的相关概念:
- 仓库:SVN 只有一个仓库,就是中心仓库,所有人的提交都会提交到这里
- 主干:trunk,这里存放项目代码或相关文件
- 标签:tags 用于标示项目中呗命名的快照
- 分支:用于创建项目的一个一个分支,可以在新的分支上继续工作,一个项目可以有多个分支
- 工作副本:将项目从仓库拉取到本地之后,就是一个工作副本
SVN 命令行操作
svn 在使用的过程中主要包括如下的过程:
从仓库获取阶段
从仓库检出代码:
$ svn checkout svn://gitee.com/XXX/svn_test_items --username=leijun19930412@sina.com
查看 SVN 信息:
$ svn info
查看提交历史:
$ svn log
从仓库更新代码:
$ svn update
工作副本阶段
查看工作副本状态:
$ svn status
查看文件变化:
可以查看单个文件和单个文件夹的变化,也可以查看整个项目的变化。
$ svn diff
添加全部新增文件:
会忽略 svn.ignore 的文件,也可以只添加单独的文件和目录
$ svn add . --force
添加文件或者目录到 ignore:
$ svn propset svn:ignore fileOrdir ./
解除项目的ignore:
$ svn add fileOrDir --no-ignore
放弃文件的修改:
如果想放弃某个文件的修改
$ svn revert hello.c
如果想放弃整个目录的修改:
$ svn revert -R dir
如果想放弃整个项目的修改:
$ svn revert -R .
解决文件冲突:
- 将代码与仓库同步
$ svn update
- 查看冲突的文件
$ svn status
- 手动合并被标示为 C 的文件
- 然后解决冲突
$ svn resolve --accept=working filename
新建tag:
$ svn copy --revision=version(版本号) trunk/ tags/tag_name
分支:
新建分支:
$ svn copy trunk branches/branch_name
合并分支:
$ svn merge brancjes/branch_name
提交更改阶段
提交文件的修改
$ svn commit -m "Update"