
获得徽章 9
- #挑战每日一条沸点#
情景再现:当敲代码的时候,我们有时候会遇见正在dev分支开发新功能,做到一半会有人来反馈bug,让马上解决,但是新功能做了50%你有不想提交,这时候需要使用git stash命令先把当前进度保存,再切换到另外一个分支去修改bug,修改完之后再切回dev,使用git stash pop来恢复之前的进度进行开发。
1-git stash:保存当前工作进度,会把暂存区和工作区的改动保存起来,执行完这个命令后,再运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save '提交注释' 可以添加一些注释。
2-git stash list :显示保存进度的列表,相当于git stash命令可以多次执行。
3-git stash pop[-index][stash_id]:
3.1-git stash pop恢复最新的进度到工作区。
3.2-git默认会把工作区和暂存区的改动都恢复到工作区。
3.3-git stash pop --index: 恢复最新的进度到工作区和暂存区(尝试将原来暂存区的改动恢复到暂存区);
3.4-git stash pop stash@{1}: 恢复指定的进度到工作区
3.5-stash_id:是通过git stash list命令得到的 通过git stash pop命令恢复进度后,会删除当前进度。
4-git stash apply[-index][stash_id]:
除了不删除恢复的进度之外,其余和git stash pop命令一样。
5-git stash drop [stash_id]:
删除一个存储的进度,如果不指定stash_id,则默认删除最新的存储进度。
6-git stash clear:删除所有存储的进度。
小结:修复bug时,我们会通过创建新bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后再git stash pop回到工作现场展开7点赞