SVN简介
它是什么
SVN是Subversion的简称,是一个开放源代码的版本控制系统,和git(分布式版本控制)比它采用了集中式版本控制,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。它管理者很多数据,这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
几个概念
- repository(源代码库):源代码统一存放的地方
- Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
- Commit(提交):当你已经修改了代码,你就需要Commit到repository
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
- Merge (合并): 当你有多个分支时,一般需要从trunk合并到分支,或分支合并到主干
- Trunk (主分支): 主分支
- Branches (分支): 分支,开发一般需要新建一个branch,最后将代码合并到Trunk
与git比较
git也是一个开源的分布式版本控制系统,是目前世界上最先进的分布式版本控制系统。相比较git有以下优势:
- git是分布式的,svn是集中式的。(最核心)
- git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)
- git可离线完成大部分操作,svn则不能
- git分支和合并更强大
- git有着更强的撤销修改和修改历史版本的能力
- git速度更快,效率更高。
唯一弱点,Git 没有严格的权限管理控制,一般通过系统设置文件读写权限的方式来做权限控制。不过git的发展伴随着开源的发展,与github是亲兄弟。
常用命令
创建分支
|
删除分支或tags
|
checkout 到工作目录
|
从主干合并到分支(主干更新后,想要拉取到我的分支)
|
合并分支到主干(分支开发完毕后,需要合并到分支)
|