svn与git的区别以及SVN软件使用
Posted Jocelin47
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了svn与git的区别以及SVN软件使用相关的知识,希望对你有一定的参考价值。
版本控制分为集中式和分布式。
集中式版本控制系统
版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作。主要代表就是SVN。
好处:每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。
缺点:只能有一个中央服务器,存在中央服务器的单点故障 。
分布式版本控制系统
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。主要代表就是Git
一、SVN使用教程
1.SVN是什么?
代码版本管理工具
它能记住你每次的修改
查看所有的修改记录
恢复到任何历史版本
恢复已经删除的文件
2.与git比的优势
使用简单,上手快
目录级权限控制,企业安全必备
子目录Checkout,减少不必要的文件检出
3.主要应用:
开发人员用来做代码的版本管理
公司内部文件共享,并且能按目录划分权限
4. SVN仓库
推荐:svnbucket.com,SVN桶,现在最好用的SVN服务
5.安装SVN客户端
TortoiseSVN(Windows)
Cornstone(Mac)
二、linux下搭建SVN服务器
1. 安装svn服务器软件subversion。
apt-get install subversion
2. 初始化svn目录。
svnadmin create /home/book/svn/test_project
3. 使用svn:// 协议主要需要配置conf目录下的三个文件。
1) svnserve.conf : svn仓库服务配置文件
2)authz : 用户权限配置文件
//groups 下存放分组下的用户 多个用户用,分割
[groups]
admin=harry,sally
//用相对路径表示要确定的目录 @组名 指定该组下所有用户的权限 也可以直接指定单个用户的权限
[/]
rw代表可读可写,r代表只读,* = 代表无任何权限
3)passwd: 用户密码配置文件
4. 启动svn服务器
# -d 表示守护进程 -r 指定启动的根目录 --log-file 指定日志的位置
svnserve -d -r /home/book/svn/test_project --log-file=/var/log/svnserve.log
测试是否可以连接
book@www.100ask.org:~/svn/test_project/conf$ svn co svn://10.16.109.219/
取出版本 0。
5.客户端checkout
三、SVN基本操作
检出 checkout
新增
提交
更新
历史记录
在svnbucket官网上构建服务器。
在svnbucket官网注册账号,创建私有项目。
PC下选择一个工作目录,选择svn检出
输入url后再输入自己的账号密码
出现绿色的标志,代表文件和服务器同步。
加入几个文件,点击SVN提交
选中文件后,确定提交。所有的文件和文件夹都有绿色的勾,与官网同步。
官网上面也收到我们的提交记录。
现在更改一个文件,出现红色的感叹号
再点击提交,双击文件可以看到差异。
提交后,官网上就可以看到更新后提交的代码。
通过显示日志,可以看到自己的提交记录以及更改代码的内容详情。
四、解决冲突
1. 什么时候发生冲突?
- 多个人修改了同个文件的同一行
- 无法进行合并的二进制文件
2. 怎么避免冲突?
- 经常update同步下他人的代码
- 二进制文件不要多个人同时操作
可以选择选择自己的或者别人的文件解决冲突,或者点击编辑冲突查看跟别人的区别
五、svn创建分支操作
什么时候需要开分支?
- 隔离线上版本和开发版本
- 大功能开发,不影响到其他人,自己独立开个分支去开发
建议每个仓库的根目录都创建trunk、branches、tags目录,这是经典的 SVN 目录结构,方便开发和维护
一般开发模式是,开发时都在trunk写代码,上线产品后就创建分支到branches目录,线上版本出问题了,我们应该在对应的分支上进行修复,并且把修复后的代码合并到主干上。
1. 创建分支
(1) 右键 trunk 目录 => 右键TortoiseSVN => Branch/tag
填写分支路径/branches/version1.0,填写注释,选择最用最新的版本开分支,如下
2. 如何合并代码
假设我们在分支上修复了一个线上的BUG,需要把代码那个代码合并到主干来,操作步骤:
对在分支文件的readme修改后,想要合并到主干上
如果想要合并多个,可以选择多个。
选择合并版本到
文件出现感叹号,重新点击提交,点击最近信息可以看到最新的信息。
3. 切换分支
对合并后的主干网络现在建立分支2.0
进入分支目录下点击版本库浏览器
可以看到两个版本
对原来的version1.0点击切换
选择2.0
切换成功后,点击文件属性,可以看到URL已经是2.0了,但是文件名还是要修改,或者名字就不要版本号了。
六、代码暂存
使用情况:
1.代码改了很多,突然需要紧急修复一个bug,但是代码还没写完,不能提交。
2.代码重构了很多,突然需要发布新版本,但是代码还跑不起来,不能提交。
修后文件后点击储藏
点击储藏会把修改的文件列出来。
点击取消储藏
如果对相同的名称储藏两次就会出现两个版本,点击应用后就可以把储藏的代码恢复出来。
以上是关于svn与git的区别以及SVN软件使用的主要内容,如果未能解决你的问题,请参考以下文章