尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SVN学习笔记(一)

SVN学习笔记(一) 目录一、SVN概述1. SVN定义2. SVN特点二、SVN下载与安装1. SVN 服务端下载、安装与配置Windows版2. SVN客户端下载与安装三、SVN使用1. SVN三大指令(1) 检出(Checkout)(2) 提交(Commit)(3) 更新(Update)2. 其他常用功能(1) 与前一版本比较(2) 显示日志比较版本差异(3) 更新至版本版本回退(4) 获取锁定(5) 版本库浏览器(6) 忽略文件(7) 解决冲突(8) 属性3. SVN 常见图标及含义(1) 常见的SVN图标如下图一、SVN概述1. SVN定义SVN 是 subversion 的缩写是一个开放源代码的版本控制系统通过采用分支管理系统的高效管理简而言之就是用于多个人共同开发同一个项目实现共享资源实现最终集中式的管理。2. SVN特点(1)‌集中式管理‌所有文件版本都存储在中央服务器客户端只有工作副本没有完整历史记录管理员可以轻松掌握每个人的开发权限。‌(2)全局版本号‌每次提交都会生成一个唯一的全局版本号不同文件的修改共享同一个版本号方便回溯和对比。‌(3)原子提交‌提交操作要么全部成功要么全部失败不会出现部分文件更新而其他文件未更新的情况保证版本完整性。‌(4)分支和标签管理‌通过目录复制实现分支和标签结构清晰适合企业级项目管理。‌(5)网络依赖‌必须联网才能工作操作都依赖中央服务器对网络带宽有一定要求。‌(6)权限控制‌支持路径级别的访问权限设置可以针对不同目录或文件分配不同的访问权限。‌‌二、SVN下载与安装1. SVN 服务端下载、安装与配置Windows版参考我写的另一篇文章点击跳转到SVN服务端下载、安装与配置Windows版。2. SVN客户端下载与安装参考我写的另一篇文章点击跳转到 TortoiseSVN 下载与安装。三、SVN使用1. SVN三大指令(1) 检出(Checkout)SVN检出是从服务器把代码或文档下载到本地。注意Checkout只在第一次链接时操作一次以后如果进行更新操作需使用Update指令。‌‌‌步骤① 在空白目录中“右键 - SVN检出(K)...”② 录入版本库URL新仓库创建完成时显示的“仓库URL”和准备存放的路径③ 录入用户名和密码勾选“保存认证”后点击“确定”④ 等待系统检出完成⑤ 检出完成后文件夹中多了一个.svn的隐藏目录我的是空仓库所以没有其他文件(2) 提交(Commit)把本地写好的代码上传到服务器让团队其他人能同步到你的改动。步骤新建文件 -- 右键 -- SVN提交(C)...(3) 更新(Update)把服务器上的最新代码拉到本地确保你基于最新版本开发。步骤右键 -- SVN更新(U)...2. 其他常用功能(1) 与前一版本比较查看当前文件或工作副本和上一次提交版本之间的具体改动‌。步骤在文件(或文件夹)上右键 -- TortoiseSVN -- 与前一版本比较(D)效果如下图(2) 显示日志比较版本差异查看仓库提交历史日志每次commit都会生成一条日志记录。步骤在文件(或文件夹)上右键 -- TortoiseSVN -- 显示日志(L)效果如下图日志里的每一条记录对应一个修订号。比较任意两条日志差异本质就是比较两个修订版本的代码差异不限于相邻版本。步骤① 选中两个版本可以不相邻右键--点击“比较版本差异(C)”② 版本2和版本4的差异如下(3) 更新至版本版本回退把本地工作副本更新到仓库某个指定历史版本。步骤① 在文件上右键 -- TortoiseSVN -- 更新至版本(U)...在打开的页面点击“显示日志(L)”② 选中要回退的版本后版本3点击“确定”③ 刚才选中的版本号版本3会显示在下面位置然后点击“确定”④看到这个提示说明回退完成(4) 获取锁定只有你当前这个工作副本可以提交该文件其他人提交这个文件会直接被服务器拒绝防止多人同时修改产生冲突。步骤在文件(或文件夹)上右键 -- TortoiseSVN -- 获取锁定(K)锁定成功提示如下(5) 版本库浏览器用来直接浏览服务器上的版本库仓库不需要本地工作副本。步骤在文件(或文件夹)上右键 -- TortoiseSVN -- 版本库浏览器(R)效果如下图(6) 忽略文件有些文件不希望上传至svn服务器应该将该文件或该类型的文件添加至忽略列表。步骤在文件或文件夹上右键 -- TortoiseSVN -- 增加到忽略列表(I) -- “可忽略文件.docx”可忽略文件.docx只忽略文件名叫“可忽略文件.docx”这一个文件。*.docx忽略本文件夹下所有后缀docx文件。可忽略文件.docx(recursively )本文件夹 所有子文件夹只要文件名是“可忽略文件.docx”全部忽略。*.docx(recursively )本文件夹 所有子文件夹所有docx文件全部忽略。recursively 递归遍历整棵目录树包含当前选中目录连同所有子目录、子目录下全部文件。(7) 解决冲突系统提示① 当修改完某个文件准备“提交”时系统提示“提交失败”提示信息如下说明在你提交前有其他人已经提交过此文件此时需先更新工作副本。② 由于你本地文件已经修改过在点击“更新”后系统提示信息如下解决步骤① 产生冲突时更新后在当前目录下会多出3个文件如下图说明HelloWorld.java主文件里面带冲突标记。和之间**你的本地修改**和之间**服务器上别人提交的修改**HelloWorld.java.mine更新操作之前你本地修改后的版本。HelloWorld.java.r3基础版本版本号为3你上次更新后、还没做任何修改的原始文件是你和对方共同的起点版本。即你们两个人都是基于 r3 这个版本开始修改代码。HelloWorld.java.r8服务器最新版本版本号为8别人已经提交到 SVN 仓库的版本r8即别人改完提交后的代码。② 打开HelloWorld.java文件③ 保留你们俩人修改的内容并删除SVN生成的标记行如下图④ 删除另外3个文件即.mine/.r3/.r8⑤ 重新提交SVN(8) 属性查看某个文件或文件夹在SVN仓库里的完整路径仓库地址 目录 文件名。步骤在文件或文件夹上右键 -- 属性Windows属性窗口 -- 切换到“Subversion”标签页3. SVN 常见图标及含义(1) 常见的SVN图标如下图1) “常规”文件与版本库完全同步没有本地修改这是最理想的状态。2) “冲突”更新时产生了冲突说明你和其他人改了同一处代码需要手动处理解决冲突。‌‌3) “已删除”文件或文件夹被计划删除或者表示文件缺失。4) “增加”文件或文件夹已被计划加入版本控制但还没提交是新加入的文件。5) “无版本控制”表示暂时还没有版本的控制但没有被忽略。6) “修改”文件被本地修改过但还没提交需要尽快 commit。7) “只读”文件是只读的这是设置只读属性后才会出现的标识编辑前需要先获取文件锁。8) “锁定”表示文件被锁定必须先释放锁才能让别人的修改提交。9) “忽略”文件不受版本控制已被忽略。
返回列表