亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Git實戰手冊(三): stash解惑與妙用

標簽:
Git

在实际项目开发中,总会遇到代码写到一半(没法去打commit),去开启新的分支 修复Bug 或者 增加功能 的情况。如果不处理,未修改的代码就会被带入临时创建的新的分支,没写完的代码 和 要修复的代码混合在一起,绝对苦逼。而Git中的stash就是用来对付这种情况。

1. 初识git stash

stash在英文中的意思是:隐藏。在Git代码管理的过程中,它的作用也是隐藏没完成的代码,防止它干扰 别人 或者 新分支的工作。

关于git stash,常用命令如下:

命令作用
git stash隐藏当前的工作现场, 此时, git status的结果是 clean
git stash list查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id
git stash apply <id>重新显示标识为id的隐藏
git stash drop <id>git apply恢复隐藏后, 需要手动删除list列表中的记录

2. 应用与实战

假设:正当我在 master 分支上写着文档时候(没有完成、没有提交),同事发现 hello.py 这个脚本有问题,紧急报告给我进行修复。

收到报告,下意识就是开一个 debug 分支来处理bug。但是,现在的文档没完成,自然无法提交,又不能把没提交的东西带入到新创建的 debug 分支(执意如此,我也没办法 : ))。目前,status 如下:

webp

image

为了达到目的,分为以下几步:

  1. 隐藏修改:git stash :

    webp

    image

  2. 创建新分支:git branch debug :

    webp

    image

  3. debug分支上修复bug, 并且将修改添加到log中 :

    webp

    image

  4. 回到master分支, 合并debug分支的修改, 并且删除 debug 分支 :

    webp

    image

  5. 重新显示隐藏的stash,并且将其从stash list列表中删除 :

    webp

    image

  6. 然后就可以愉快地继续做自己的事情啦!

3. 拓展阅读

在实际生产过程中,难免会遇到多个 stash 的情况。此时,他们的id默认都是:stash{0}, stash{1}, stash{2} ... ...

当我们恢复一个 stash ,并且将它从 stash list 中移除的时候,在其下方的 stash 记录的id会自动变小,以保证id是从0到n的连续自然数列。所以,当从 stash list 移除一个 stash 后,一些 stash 的 id 就会发生改变。此处是个坑。



作者:godbmw
链接:https://www.jianshu.com/p/df3b1dfdbbfd


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消