git-stash


Git实用技巧:git stash

我们经常会遇到这样的情况:

正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来。然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能。

1. stash当前修改

  • git stash
    保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。
  1. stash是本地的,不会上传到服务器上;
  2. 使用git stash save 'message...'可以添加一些注释。

2. 查看现有stash

  • git stash list
    显示保存进度的列表。也就意味着,git stash命令可以多次执行。
  • git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

3. 重新应用缓存的stash

  • git stash pop [–index] [stash_id]
    恢复之前缓存的工作目录。
  1. git stash pop:恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区,同时删除该进度;
  2. git stash pop stash@[stash_id]:恢复指定的进度到工作区,如:git stash pop stash@{1}stash_id是通过git stash list命令得到的;
  3. 通过git stash pop命令恢复进度后,会删除当前进度;
  4. git stash apply stash@{1}:恢复进度后,不会删除当前进度,默认使用最近的stash(即stash@{0})。

4. 移除stash

  • git stash drop [stash_id]
    删除一个存储的进度,如:git stash drop stash@{0}
  1. 如果不指定stash_id:,则默认删除最新的存储进度;
  2. git stash clear:删除所有存储的进度。

文章作者: Cheney
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cheney !
 上一篇
Git分支管理策略方案分析与总结 Git分支管理策略方案分析与总结
前言随着Git的流行,越来越多的团队在往Git迁移或者转型,在团队建设初期或者中期转型优化,合适的Git分支管理策略方案能够较好的提高团队的效率,节约人员成本,降低代码版本管理带来的风险。笔者曾经历过因为分支管理策略不合适、人员操作不规范引
2020-11-22
下一篇 
Nginx全能解析及性能调优 Nginx全能解析及性能调优
nginx 是一个轻量级的、基于http的、高性能的反向代理的服务器和静态web服务器。 正向代理和反向代理 不管是正向代理还是反向代理都是基于客户端来说的。 正向代理 特点 正向代理是对客户端的代理 正向代理是架设在客户端的主机
2020-11-18
  目录