第 4 章 分支巫术.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文档。上传文档
查看更多
第 4 章 分支巫术

第 4 章 分⽀巫术 即时分⽀合并是Git最给⼒的杀⼿锏。 问题 :外部因素要求必须切换场景。在发布 本中突然蹦出个严重缺陷。某个特性完 成的截⾄⽇期就要来临。在项⽬关键部分可以提供帮助的⼀个开发正打算离职。所有 情 况逼迫你停下所有⼿头⼯作,全⼒扑到到这个完全不同的任务上。 打断思维的连续性会使你的⽣产⼒⼤⼤降低,并且切换上下⽂也更⿇烦,更⼤的损 失。 使⽤中⼼ 本控制我们必须从中⼼服务器下载⼀个新的⼯作拷贝。分布式系统的 情况就 好多了,因为我们能够在本地克隆所需要的 本。 但是克隆仍然需要拷贝整个⼯作⽬录,还有直到给定点的整个历史记录。尽管Git使⽤ ⽂ 件共享和硬链接减少了花费,项⽬⽂件⾃⾝还是必须在新的⼯作⽬录⾥重建。 ⽅案 :Git有⼀个更好的⼯具对付这种情况,⽐克隆快多了⽽且节省空间: git branch 。 使⽤这个魔咒,⽬录⾥的⽂件突然从⼀个 本变到另⼀个。除了只是在历史记录⾥上 跳 下窜外,这个转换还可以做更多。你的⽂件可以从上⼀个发布 变到实验 本到当 前开 发 本到你朋友的 本等等。 ⽼板键 肮脏的⼯作 快速修订 合并 不间断⼯作流 重组杂乱 管理分⽀ 临时分⽀ 按你希望的⽅式⼯作 ⽼板键 曾经玩过那样的游戏吗?按⼀个键 (“⽼板键” ),屏幕⽴即显⽰⼀个电⼦表格或别 的? 那么如果⽼板⾛进办公室,⽽你正在玩游戏,就可以快速将游戏藏起来。 在某个⽬录: $ echo Im smarter than my boss myfile.txt $ git init $ git add . $ git commit -m Initial commit 我们已经创建了⼀个Git仓库,该仓库记录⼀个包含特定信息的⽂件。现在我们键⼊: $ git checkout -b boss # 之后似乎没啥变化 $ echo My boss is smarter than me myfile.txt $ git commit -a -m Another commit 看起来我们刚刚只是覆盖了原来的⽂件并提交了它。但这是个错觉。键⼊: $ git checkout master # 切到⽂件的原先版本 嘿真快 !这个⽂件就恢复了。并且如果⽼板决定窥视这个⽬录,键⼊: $ git checkout boss # 切到适合⽼板看的版本 你可以在两个 本之间相切多少次就切多少次,⽽且每个 本都可以独⽴提交。 肮脏的⼯作 ⽐如你正在开发某个特性,并且由于某种原因,你需要回退三个 本,临时加进⼏⾏ 打 印语句来,来看看⼀些东西是如何⼯作的。那么: $ git commit -a $ git checkout EAD~3 现在你可以到处加丑陋的临时代码。你甚⾄可以提交这些改动。当你做完的时候, $ git checkout master 来返回到你原来的⼯作。看,所有未提交变更都结转了。 如果你后来想保存临时变更怎么办?简单: $ git checkout -b dirty 只要在切换到主分⽀之前提交就可以了。⽆论你什么时候想回到脏的变更,只需键 ⼊: $ git checkout dirty 我们在前⾯章节讨论加载旧状态的时候,曾经接触过这个命令。最终我们把故事说 全: ⽂件改变成请求的状态,但我们必须离开主分⽀。从现在开始的任何提交都会将 你的⽂ 件提交到另⼀条不同的路,这个路可以之后命名。 换⼀个说法,在checkout⼀个旧状态之后,Git ⾃动把你放到⼀个新的,未命名的分 ⽀, 这个分⽀可以使⽤ git checkout -b 来命名和保存。 快速修订 你正在做某件事的当间,被告知先停所有的事情,去修理⼀个新近发现的臭⾍,这个 臭 ⾍在提交 1b6d…: $ git commit -a $ git checkout -b fixes 1b6d 那么⼀旦你修正了这个臭⾍: $ git commit -a -m Bug fixed $ git checkout master 并可以继续你原来的任务。你甚⾄可以“合并”到最新修订: $ git merge fixes 合并 ⼀些 本控制系统,创建分⽀很容易,但把分⽀合并回来很难。使⽤Git ,合并简直是 家 常便饭,以⾄于甚⾄你可能对其发⽣没有察觉。 我们很久之前就遇到合并了。 pull 命令取出提交并合并它们到你的当前分⽀。如果 你没有本地变更,那这个合

文档评论(0)

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

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

1亿VIP精品文档

相关文档