Pro Git

Scott Chacon

出版社

Apress

出版时间

2009-08-27

ISBN

9781430218333

评分

★★★★★
书籍介绍
这并不是一本查语法的速查手册。很多读者最初带着'pull该用哪个命令'的期待翻开它,合上时却意识到:Git从来不只是工具。全书以'理解'为纲而非'记忆'为纲,把分支讲成'指向提交的可变指针',把合并、衍合、快进展开为有内在逻辑的行为,而非彼此孤立的指令。前四章足够支撑日常工作,后续关于服务器协议、子模块、远程协作的部分则走向进阶——有读者坦言'后来hold不住',恰恰说明它刻意区分了入门与精通的边界。书中那句'永远不要衍合已推送到公共仓库的提交,否则会被群众仇恨',以近乎警告的口吻,点破了团队协作中'本地操作'与'公共历史'的张力。它适合愿意花几小时把概念理顺、进而真正驾驭分布式版本管理的人,而非只想快速上手敲命令者。
作者简介
Scott Chacon is a Git evangelist and Ruby developer employed at Logical Awesome working on GitHub.com. He is the author of the Git Internals Peepcode PDF as well as the maintainer of the Git homepage and the Git Community Book. Scott has presented at RailsConf, RubyConf, Scotland on Rails, Ruby Kaigi, OSCON and a number of local groups and has done corporate training on Git across the country.
AI导读
核心看点
  • Git专家撰写,系统讲解分布式版本控制原理
  • 图文并茂,深入解析分支、合并与内部机制
  • 提供多场景工作流策略,指导高效团队协作
读者共识
  • 内容全面且文笔流畅,是公认的最佳Git入门书
  • 相比碎片化教程,本书能建立完整的知识体系
  • 免费在线版易获取,适合随时查阅作为案头手册
精彩摘录
  • "如果顺着一个分支走下去可以到达另一个分支,git合并时只会简单地把指针前移,因为没有什么分歧要解决,这个过程叫Fast forward"
  • "衍合按照每行改变发生的次序重演发生的改变,而合并是把最终结果合在一起。"
  • "Do not rebase commits that you have pushed to a public repository. If you follow that guideline, you’ll be fine. If you don’t, people will hate you, and you’ll be scorned by friends and family. 永远不要衍合那些已经推送到公共仓库的更新。 如果你遵循这条金科玉律,就不会出差错。否则,人民群众会仇恨你,你的朋友和家人也会嘲笑你,唾弃你。"
  • "指定两个引用中的一个包含但又不被两者同时包含的分支"
  • "使用这项技术的时候你必须小心,因为修正会改变提交的SHA-1值。这个很像是一次非常小的rebase——不要在你最近一次提交被推送后还去修正它"
  • "一个常见的问题是当开发者对子模块做了一个本地的变更但是并没有推送到公共服务器。然后他们提交了一个指向那个非公开状态的指针然后推送上层项目。当其他开发者试图运行git submodule update,那个子模块系统会找不到所引用的提交,因为它只存在于第一个开发者的系统中 你不得不去查看谁最后变更了子模块 git log -l rack 然后,你给那个家伙发电子邮件说他一通。"
  • "子树归并的思想是你拥有两个工程,其中一个项目映射到另外一个项目的子目录中,反过来也一样。当你指定一个子树归并,git可以聪明地探知其中一个是另外一个的子树从而实现正确的归并"
  • "让git把所有pbxproj文件当成二进制文件,在.gitattributes文件中设置如下: *.pbxproj -crlf -diff git 1.6后可以用一个宏binary代替-crlf -diff"
用户评论
有需要再深究
我很同意我的一个同事说过的一句话:要使用git,真不能拿来敲个git --help就用,你得好好看一下先。 而至于看什么,这么免费的在线书籍,绝对是不二之选,花个几个小时,把前四章过一篇(当然,要边看边练习),你就可以用git做日常工作了。我断断续续读完了真本书,不能说全掌握了,但是要是遇到什么问题,我相信可以很快的翻开这本书,找到我想要的解决方案。入门之后,就在平常的工作实践中逐步提高吧。 我本人p4和git都用的比较多,我也没有什么特别的偏好。要说git的优点,还是众所周知的那几点:一个是本地commit;一个是轻量的branch;第三个是fork+pull灵活方便的开源合作模式。至于rewrite history,我觉得这个功能太过危险,还是不要给任何人重写历史的权利比较好。
在线 中文版,http://progit.org/book/zh/ 感谢@chunzi 建议再阅读:http://www.juvenxu.com/2010/11/28/a-successful-git-branching-model/ 《一个成功的Git分支模型》这篇文章
via @su27 老师的第一课教材
有中文译本,可以看看
这本书是开源的,对于有使用git经验的人,我建议从最后往前读,就像MIT的课程:The Missing Semester of Your CS Education 中写到的----Git 的接口有些丑陋,但是它的底层设计和思想却是非常优雅的。丑陋的接口只能靠死记硬背,而优雅的底层设计则非常容易被人理解。因此,我们将通过一种自底向上的方式向您介绍 Git。我们会从数据模型开始,最后再学习它的接口。
有人认为git cumbersome,但我觉得还可以?这本pro git深入浅出地介绍了git的软件原理,而且附有适用于新手上手和熟练者借鉴的许多实例,好评。
progit_v2.1.55
读了前7章,比较全面
非常清晰了 工具书典范
下载
收藏