场景:

当我们正在master分支开发新功能的时候,突然接到一个任务发现线上出现了一个紧急的BUG需要修复,由于没有打新分支做这部分新需求,这时正做到半途中….已经把本地代码修改得花里胡哨了,该怎么办,有什么办法快速解决吗?

这时Git stash这个非常实用的功能就派上用场了,将本分支的修改暂存起来。

涉及到的几个命令:

1、git status:查看工作区文件状态,列出已经修改的文件

IDEA:Git stash 暂存分支修改的实现代码

2、 git stash save '自定义描述' :暂存工作区的文件

IDEA:Git stash 暂存分支修改的实现代码

3、git stash list:查看所有暂存列表

IDEA:Git stash 暂存分支修改的实现代码

4、git stash pop:恢复暂存的文件,直接将最近一次 stash 的代码pop出来并删除stash记录,还原到stash隐藏之前

IDEA:Git stash 暂存分支修改的实现代码

5、git stash apply id:恢复暂存的文件,和git stash pop功能一样,先通过git stash list找到记录编号,通过编号id恢复。区别在于git stash apply id不会删除stash记录。

实际中还原后就没什么必要在保存stash记录了,推荐直接用git stash pop就OK了。

IDEA:Git stash 暂存分支修改的实现代码

IDEA 也可以用可视化界面直接操作:右键project > git > repository 

IDEA:Git stash 暂存分支修改的实现代码

拓展:找回清除的 stash 数据

我们能将代码暂存起来,当然也能将暂存区的数据删除,如果在没有恢复暂存代码的时候不小心将暂存区的数据删除了该怎么吧?

只需要用这句命令即可:

git log –graph –oneline –decorate $( git fsck –no-reflog | awk '/dangling commit/ {print $3}')

找到对应的 id,然后用git stash apply id 命令直接恢复找回即可

IDEA:Git stash 暂存分支修改的实现代码

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。