用Git 进行版本控制.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Git 进行版本控制

用 Git 进行版本控制 李博杰 2012­05­20 bojieli@ 版本控制的史前时代 ● 用存储介质拷贝代码 – 代码相互覆盖,不知道哪个版本是正确的 – 搞错了无法恢复,需要定期手工备份 ● diff  patch – 1991~2002 ,Linux 内核 – 能看到文件之间的差异,知道哪里修改了 – 更改历史需要手工维护 – GNU diff 不支持二进制文件 版本控制的诞生 ● 将 diff 和 patch 的过程自动化 – 单一文件版本管理工具 RCS – 只保留一个版本的完全拷贝,其他历次更改仅保 留差异: V3=V1+△1+△2 ● CVS :脚本实现的RCS 文件容器 (1985, 1986 publish, 1989 rewriten in C) – 版本库中任意一个目录拿出来是一个新的版本库 – Commit log, checkin, checkout, tag, branch – 文件的版本号相互独立,全局版本号只能不停地 打 tag CVS 原理示意 SVN ● 索引的是二维信息:文件、版本 ● CVS :工作区中的每个文件对应版本库中的一个 文件 ● SVN :每个版本的一个差异文件,一个信息文件 – 以顺序数字编号命名 – db/revs 下的:与上一提交的差异 – db/revprogs 下的:提交日志、作者、提交时间 ● SVN 实现了全局版本号、原子提交、跟踪重命名 SVN 原理示意 Linus 为何迟迟不用版本控制 ● 集中式版本控制系统 – 版本库存储在服务器端,每次提交、查看日志能 操作都要与服务器连接 – 代码的稳定性高度依赖中心服务器 – 历史不容篡改,无法做试验性提交,“一失足成千 古恨” ● Linus 认为这不符合开源项目的精神,因此直到 2002 年才使用商业版本控制系统 BitKeeper 管理 Linux 代码 分布式版本控制系统 ● 每个人拥有一个完整的版本库 ● 查看日志、提交、创建 tag 和分支等操作可以在 本地完成,不再时刻需要网络连接 ● 在推送到远程版本库前可以做很多试验性的提 交,反复悔改而不必担心干扰其他人 ● 多样的协同工作模型使开源项目的参与度爆发式 增长 Git 是逼出来的 ● 2005 年 4 月, Andrew Tridgell 试图对 BitKeeper 进行反 向工程,以开发一个能与之交互的开源工具 ● BitMover 公司要求收回对 Linux 社区的免费授权 ● Linus 只好“自力更生”: – 2005­04­03 ,开始开发 – 2005­04­06 ,项目发布 – 2005­04­07 ,Git 作为自身的版本控制工具 – 此时 git 代码只有 1244 行,只有一些底层命令 Git 是逼出来的 (contd) – 2005­04­18 ,第一次分支合并 – 2005­04­29 ,Git 的性能达到 Linus 的预期 – 2005­06­16 ,Linux 2.6.12 开始采用 Git – 2005­07­26 ,Linus 功成身退 ,将Git 的维护交 给

文档评论(0)

ldj215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档