- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 命令取出提交并合并它们到你的当前分⽀。如果
你没有本地变更,那这个合
您可能关注的文档
最近下载
- 2024中国电信股份有限公司陕西分公司校园招聘试题及答案解析.docx
- (正式版)-B 5768.2-2022 道路交通标志和标线 第2部分:道路交通标志.docx VIP
- 有毒有害气体安全防护培训.pptx VIP
- 北师大版数学六年级上册数学好玩备课教案.docx VIP
- 20-丙型肝炎病毒实验活动风险评估报告.doc VIP
- 《AI时代如何做好班主任》---校长在班主任培训会上的讲话.doc VIP
- 在作风建设专题研讨会上的发言材料.docx VIP
- 数字智慧方案IDC工业企业数字化的两种路径(35页PPT).pptx VIP
- 【PPT课件】2024特种设备重大事故隐患判定准则培训资料.pptx
- CATIA高级应用-七大技巧-个人总结,图文.pdf VIP
文档评论(0)