Git版本控制管理(第2版) 高清.pdf版下载

上传:heudjh 浏览: 37 推荐: 0 文件:PDF 大小:11.5MB 上传时间:2019-09-25 19:24:03 版权申诉
Git版本控制管理(第2版) 中文版 仅1 4 21章 不全。本书不但讲解了如何使用 Git,而且更进一步地剖析了 Git 是怎么做到的。O Reilly Media,mc.介绍O Reilly Media通过图书、杂志、在线服务、调査硏究和会议等方式传播创新知识。自1978年开始, OReilly-直都是前沿发展的见证者和推动者。超级极客们正在开创着未来,而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社会对新科技的应用。作为技术社区中汗跃的参与者, OReilly的发展充满∫对创新的倡导、创造和发物光大。O`Rcil.为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN):组织了影响深远的开放源代码峰会,以至于开源软件运动以上命名;剑立了Make杂志,从而成为DY革命的主要先锋;,公司一如既往地通过多种形式缩结信息与人的纽带。 OReilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共冋描绘出开创新产业的茑命性思想。作为技术人土获取信息的选择现在还将先锋专家的知识传递给普通的计算机用户。无论是通过书籍出版,在线服务或者田授课程,每一项 OReilly的产品都反映了公司不叮动摇的理念信息是激发创新的力量业界评论¨ OReilly radar博客有口皆碑wired凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务Business 2.0O'Reilly Conference是聚集关键恐想领袖的绝对典范。”本 OReilly的书就代表一个有用、有前途、需要学习的主题-rish tlim是冮特立独行的商人,他不光孜眼于最长远、最广阔的视野开且切实地按照Yogi berra的建议去做了:‘如果你在路上遇到岔路口,走宀路(岔路)。’回顾过去Tim似乎每一次都遮择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错al内容提要〔it是一款免费、开源的分布式版本控制系统,最早由 Linilus torvalds创建,用于管理 Linux内核开发,现己成为分布式版本控制的主流工只。本书是学习掌握Git的最佳教桯,总共分为21章,其内容涵盖了如何在多种真实开发环境中使用Git;洞察Git的常用案例、初始任务和基本功能;如何在集中和分布式版本控制中使用Git;使用Git管理合并冲突、补丁和差异;获得诸如重新定义变基( rebasing)、钩子(hok)以及处理子模块(子项目)等的髙级技巧;Gⅱt如何与SVN版本库父互(包括swN向Git的转换);通过 Github导航、使用开源项目,并对开源项目做贞献本书适合需要进行版本控制的开发团队成员阅读,对Git感兴趣的开发人员也可以从中获益译者序作为分布式版本控制系统中的佼佼者,Git拥有许多简易但功能强大的操作。人民邮电出版社的编缉邀请我们翻译木书时,正值我们在开发一个名为 GakI(集盒)的代码托管项目,于是使愉悦地承接了木书的翻译工作。作为一个一直使用Git作为技术开发版本控制系统的闭队,我们对Git有着非比寻常的感情。以自身为例,我们团队现在开发的 Dotide时序数据服务平台,就一直使用Git作为我们的版本控制工具。在开发中,Git帮我们忠实地记录着版本库的历史。无论哪里、何时、是谁出了问题,Git都可以帮我们甄别是非,迅速定位到门趟所在。另外,当我们需要独立开发新功能时,我们也从来不会去担心自己的开发会影响到别人,Git允许我们在自己的本地库中完成所有的开发,检查无误后再推送给别人,这样就可以随心所饮地处置自己本地的版本库了。与很多讲述如何使用Git的图书不同,本书不但讲解了如何使用Git,而且更进一步地剖析了Git是怎么做到的。也就是说,如果把〔it比作ˉ和魔法,那么本书不仅教会你如何使用魔法,还掀丌了魔法的红盖头。本书内容翔实,章节编排有理、有序、有节,无论你是第·次接触Git,还是有Git使用经验但是不了解其背后的运作机制,本书都会让你收获颇丰。本书的翻译工作由我们团队成员王迪、丁彦、范乃良、张戈、刘天琴、泠涵、白煜诚共同完成,最后由王迪统稿整理,在此向他们表示感谢。最后,感谢人民邮电岀版社在翻译过程中给予的理解和大力支持。最后,要说的是,由于译者自身水平有限,书中难免出现错诶,恳请广大读者批评指正。eaKin团队2014年12月于南京前言本书读者如果读者有一定的版本控制系统使用经验,再阅读本书是最好不过,当然,如果读者之前没有接触过任何版本控制系统,也可以通过本书在短时间内学会Git的基本操作,从而提升工作效率。水平更高的读者通过木书可以洞悉Git的内部设计札制,从而掌握更强大的Gi使用技术。本书假定读者熟悉并使用过 UNIX Shell、基本的shel命令,以及通用的编程概念假定的框架本书所有的小例和讨论都假定读者拥有一个带有命令行界血的类UNX系统。本书作者是在 Debian和Ubuntu linux环境下开发的这些示例。这些示例在其他环境下(比如, Mac os x或 Solaris)应该也可以运行,但是可能需要做出微调。书中有少量示例需要用到root杈限,此时,你自然应该能清楚理解root权限的职责本书结构本书是按照一系列渐进式主题进行组织编排的,每一个主题都建立在之前介绍的概念之上。本书前11章讲解的是与一个版木库相关的概念和操作,这些内容是在多个版木库上进行复杂操作(将在木书后10章涉及)的基础。如果你已经安装了Git,甚至曾经简单使用过,那么你可能用不到前两章中Git相关的介绍性知识和安装信息,第3章的知识对你来说也是可有可无。第4章介绍的概念是深入掌握Git对象模型的基础,读者可以通过4章清楚理解Git更为复杂的操作。第5章~第11章更为详细地讲解了Gi的各个主題。第5章讲解了索引和文件管理。第6章灬第10章讨论了生成提交和使用提交来形成坚实的开发路线的基础。第7章介绍∫分支,你可以在一个本地版本库中使用分支操作多条不同的开发路线。第8章解释了diff的来历和使用。Git提供了丰富、强大的功能来加入到开发的不同分支。第9章介绍了合并分支和解决分支冲突的基础。对Git模型的一个关键洞察力是意识到Git执行的所有合并是发生在当前工作目录上下文的本地版本库中的。第10章和第11章讲解了在丌发版本库内进行更改、储藏、跟踪和恢复口常丌发的操作。第12章讲解∫命名薮据以及与另外一个远程版本库交换数据的基础知识。一旦掌握了合并的基础知识,与多个版本库进行交互就变成了一个交换步骤加一个合并步骤的简单组合。交换步骤是第12章中新出现的概念,而合并步骤则是在第9章讲解的。第13章则从哲学角庋对全局的版夲库管理提供了抽象的讲解。它还为第14章建立了一个环境,使得使用〔it原生的传输协议无法直接交换版本库信息时,能够打补丁。接下来的4章则涵盖∫一些有意思的高级主题:使用钩子(第15章)、将项目和多个版本库合并到一个超级项目中(第16章),以及与SVN版本库进行交互(第17章、第18章)。第19章和第20章提供了·些更为扃级的示例和提示、技巧、技术,从而使你成为貞正的Git大师最后,第21章介绍了 GitHub,并解释」Git如何围绕着版本控制开启∫一个有创造力的社会发展进程Git仍然在快速发展,因为当前存在一个活跃的开发闭体。这并不是Git很不成熟,你无法用它来进行开发:相反,对〔it的持续改进和用户界面问题正在不断增强。甚至在本书写作的时候,〔iⅱt就在不停发展中。因此,如果我不能保持Git的准确性,还请谅解本书没有完整地覆盖gitk命令,尽管本书应该这样做。如果你喜欢以图形方式来呈现版本库中的历史,建议你自行探索gik命令。当前也存在其他历史可视化工具,这些也没有在本书中介绍。本书甚至不能完全涵盖Git自带的核心命令和选项。再次向读者道歉但是,我仍然希望读者能够从本书中找到足够的线索、提示和方向,从而激励读者自行研究、积极探索本书约定提示这个图标用来强调一个提示、建议或一般说明。警告这个图标用来说明一个警告或注意事项此外,读者应该熟悉基本的 shell i命令,以用来操作文件和目求。许多小例会包含一些命令,来完成添加/删除目录、复制文件和创建简单的文件等操作。s cp file. txt copy-of-filetxts mkdir newdirectorys rm filcs rmdir somedirs echo "Test lirfiles echo "Another line">> file需要使用root杖限来执行的命令会作为·个sudo操作出现Install the git core packages sudo apt-get install git-core如何在工作目录中编辑文件或效果如何改变则完全取决于你。你应该熟悉一款文本编辑器的用法。本书会通过直接注释或者伪代码的方式来表示文件的编辑过程。edit file. c to have some new texts edit index. htm代码示例的使用本书的目的是为了帮助读者完成L作。般而言,你可以在你的程序和文档中使用本书中的代码,而且也没有必要取得我们的许可。但是,如果你要复制的是核心代码,则需要和我们打个招呼。例如,你可以在无须获取我们许可的情況下,在程序中使用木书中的多个代码块。但是,销售或分发O’ Reilly图书中的代码光盘则需要取得我们的许可。通过引用本书中的示例代码来回答问题时,不需要事先获得我们的许可。但是,如果你的产品文档中融合了本书中的大量示例代码,则需要取得我们的诈可。在引用本书中的代码示例时,如果能列出本书的属性信息是最好不过。个属性信息通常包括书名、作者、出版社和ISBN。例如:“ Version Control with Git by Jon Loeliger and Matthew McCullough. Copyright2012 Jon loeliger,978-1-44931638-9.”在使用书中的代码时,如果不确定是否属于正常使用,或是否超出了我们的许可,请通过permissions(@oreilly.com与我们联系。联系方式如果你想就本书发表评论或有任何疑问,敬请联系出版社关国O’ Reilly media iny1005 Gravenstein Highway NorthSebastopol, CA 95472中国北京巾西城区西直门南大街2号成铭大夏C座807室(100035)奥莱利技术咨询(北京)有限公司关于本书的技术性问趣或建议,请发邮件到:bookquestions(aoreilly.com欢迎登录我们的网站(htp;ww。orcilly.com),査看更多我们的书籍、课程、会议和最新动态等信息,Facebookhttp://facebook.com/oreillyTwitterhttp://twitter.com/oreillymedYouTubehttp://www.youtube.com/oreillymedia致谢没有众多人上的帮助,木书根木不可能问世。我要感谢 Avery Pennarun为第15章、第16章和第18章贞献了大量资料,他还贡献了第4章和第9章的部分内容。感谢他的付出!感谢 Matthew Mccullough对第17章和第21章贡献的资料,此外还提供了人量的建议和意见。 Martin Langho对第13章的一些版本库发布建议进行了阐述。 Bart Massey的无须跟踪来保存文件的技巧也出现在了本书中。我要公开感谢在各个阶段花费时间来审阅本书的所有人: Robert p.J.Day、 Alan hasty、 Paul jimenez、 Barton Massey、TomRix、 Jamey Sharp、 Sarah Sharp、 Larry Streep、 Andy Wilcox和 Andy Wingo。重点感谢 Robert p.JDay,他参与审阅了本书的所有版本。我还要感谢爱妻 Rhonda和爱女 Brandi、 Heather,她们提供了各种支持,包括黑皮诺葡萄酒以及偶尔在语法上给予提示。还要感谢我的长矛猎犬Mylo,在我写作期间,它·直温柔地蜷缩在我的怀中。最后,感谢O’ Reilly的全体工作人员以及编辑 Andy Oram和 Martin streicher第1章介绍11背景现如今,难以想象有创意的人会在没有备份策略的情况下启动一个项目。数据是短暂的,且容易丢失例如,通过一次错误的代码变更或者一次灾难性的磁盘崩溃。所以说,在整个工作中持续性地备份和存档是非常明智的。对于文木和代码项目,备份策略通常包括版木控制,或者叫“对变史进行追踪管理”。每个开发人员每天都会进行若干个变更。这些持续增长的变更,加在一起可以构成一个版本库,用于项日描述,团队沟通和产品管理。版本控制具有举足轻重的作用,只要定制好工作流和项目目标,版本控制是最高效的组织管理方式个可以管理和追踪软件代码或其他类似内容的不同版本的工具,通常称为:版本控制系统(VCS或者源代码管理器(SCM),或者修订控制系统(RCS),或者其他各种和“修订”、“代码”、“内容”、“版本”、“控制”、“管理”和“系统”等相关的叫法。尽管各个工具的作者和用户常常争论得喋喋不休,但是其实每个工具都出于同样的目的:开发以及维护开发出来的代码、方便读取代码的历史版本、记录所冇的修改。在本书中,“版本控制系统”(VCS)一词就是泛指一切这样的工具。本书主要介绍Git这款功能强大、灵活而且低开销的ⅤCS,它可以让协同开发成为一种乐趣。Git由Linus torvalds发明,起初是为了方便管理 Linux1内核的开发⊥作。如今,Git已经在大量的项目中得到了非常成功的应用1.2Git的诞生通常来说,当工只跟不上项目需求时,开发人员就会开发一个新的工只。实际上,在软件领域里,创造新工具经常看似简单和诱人。然而,鉴于市面上已经有∫相当多的ⅴCS,决定冉创造一个却应该是要深思熟虑的。不过,如果有着充分的需求、理性的洞察以及良好的动机,则完全可以创造一个新的VCS〔iⅱt就是这样一个ⅤCS。它被它的创造者( Linus,一个埤气急躁又经常爆出冷幽默的人)称作“从地狱来的信息管理工具”。尽管 Linux社区内部政治性的争论已经淹没了关于Gt诞生的情形和时机的记忆,但是毋庸置疑,这个从烈火中诞生的ⅤCS着实设计优良,能够胜仼世界范围内大规模的软件廾发工程Linux是 Linus torvalds在美国和其他国家的注册商标。一原汁
上传资源
用户评论