• 1. 版本控制讲师: 李印东黑马训练营 www.itheima.com
  • 2. 问题?参与过2人以上的软件项目开发? 开发过程中程序是否具有版本控制? 如果不使用版本控制还会出现什么问题?黑马训练营 www.itheima.com
  • 3. 没有版本控制?备份多个版本,费空间,费时间 难于恢复至以前正确版本 容易引发BUG 解决代码冲突困难 代码管理混乱 难于追溯问题代码的修改人和修改时间 无法进行权限控制 项目版本发布困难黑马训练营 www.itheima.com
  • 4. 什么是版本控制? 版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。黑马训练营 www.itheima.com
  • 5. 主要内容SVN简介 SVN服务器端与客户端的使用 SVN与第三方 Eclipse 整合 Git简介 Git在Windows上的安装与使用 客户端TortoiseGit的安装与使用 Git与第三方 Eclipse 整合 黑马训练营 www.itheima.com
  • 6. SVN简介 Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。黑马训练营 www.itheima.com
  • 7. SVN基本交互流程图黑马训练营 www.itheima.com
  • 8. Subversion安装(已过时)subversion软件下载安装 http://subversion.tigris.org 我们使用版本Setup-Subversion-1.6.5.msi 黑马训练营 www.itheima.com
  • 9. VisualSVN Server下载地址: http://www.visualsvn.com/server/download/ 当前使用的版本: VisualSVN-Server-2.7.3黑马训练营 www.itheima.com
  • 10. Subversion建立仓库建立svn仓库 命令svnadmin create 仓库名称 仓库目录说明 db目录:就是所有版本控制的数据存放文件。 hooks目录:脚本文件的目录。 locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。 format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。 conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)。 黑马训练营 www.itheima.com
  • 11. 注意事项 .svn 这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。千万不要手工修改或删除这个 .svn 隐藏目录和里面的文件!!! 否则将会导致你本地的工作拷贝 (静态视图)被破坏,无法再进行操作。黑马训练营 www.itheima.com
  • 12. TortoiseSvn TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。它是 Subversion 的 Windows 扩展。可以使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了。 下载安装 http://tortoisesvn.net/downloads黑马训练营 www.itheima.com
  • 13. SVN与Eclipse整合下载SVN插件(http://subclipse.tigris.org) 我们使用版本eclipse_svn_site-1.6.5.zip 解压到一个文件夹中 进入 eclipse 安装目录中 dropins 目录并创建一个 subclipse.link 的文本文件(文件名任意)。内容为:path=eclipse_svn_site-1.6.5.zip解压路径(注意:路径中需要把‘\’替换成‘/’)黑马训练营 www.itheima.com
  • 14. Subversion目录规范创建三个顶级目录 /trunk 存放开发的“主线” /branches 存放支线副本 /tags 存放标签副本黑马训练营 www.itheima.com
  • 15. 使用Svn管理Android工程黑马训练营 www.itheima.com
  • 16. Git 简介 Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。 目前使用Git作为版本控制的开源软件:Linux kernel,Android, jQuery, Ruby on Rails,Debian… Eclipse上使用Git的项目数量也已经超过了使用SVN的仓库数。黑马训练营 www.itheima.com
  • 17. 为什么选用GIT?分布式,强调个体 公共服务器压力和数据量都不会太大 速度快、灵活 任意两个开发者之间可以很容易的解决冲突 离线工作 每日工作备份 可以吃后悔药黑马训练营 www.itheima.com
  • 18. GIT基本交互流程图黑马训练营 www.itheima.com
  • 19. 开源项目工作流程图黑马训练营 www.itheima.com
  • 20. Git安装Git软件下载安装 https://code.google.com/p/msysgit/downloads/list 我们使用版本Git-1.7.9版本黑马训练营 www.itheima.com
  • 21. Git建立仓库建立Git仓库 git init --bare 库名称 仓库目录说明 hooks目录:脚本文件的目录。 info目录:保存了不希望在 .gitignore 文件中管理的忽略模式的全局可执行文件 logs目录:日志目录 objects目录:存储所有数据内容 refs目录:存储指向数据(分支)的提交对象的指针 config文件包含了项目特有的配置选项 description文件仅供 GitWeb 程序使用 HEAD文件指向当前分支 黑马训练营 www.itheima.com
  • 22. TortoiseGit下载安装 https://code.google.com/p/tortoisegit/wiki/Download我们目前使用的版本: TortoiseGit-1.7.7.0黑马训练营 www.itheima.com
  • 23. Git与Eclipse整合下载EGit插件(http://www.eclipse.org/egit/) 下载到的插件为压缩包,可以直接在Eclipse中安装: Eclipse -> Help -> Install new Software黑马训练营 www.itheima.com
  • 24. 使用Git管理Android工程黑马训练营 www.itheima.com