[Git]VCS ~ Git - stash

看见别人在用 stash,而自己之前没有用过,于是查探一番后,终有此文

一、作用

  • 把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录,而不再 git log 中产生记录;
    • 注意,stash 操作是本地的,不会通过 git push 命令传输到另一台 Git 上;

二、原理

  • Git 内部维护一个缓存栈,每次缓存的是换货就会入栈,需要恢复的时候直接弹出或者 peak 即可;

二、用法

  1. 保存,建议添加消息
    git stash[ save "<your-message>"]
    
    • 默认情况下,git stash会缓存下列文件:
      • 添加到暂存区的修改(staged changes)
      • Git跟踪的但并未添加到暂存区的修改(unstaged changes)
    • 但不会缓存一下文件:
      • 在工作目录中新的文件(untracked files)
      • 被忽略的文件(ignored files)
    • git stash命令提供了参数用于缓存上面两种类型的文件。使用-u或者--include-untracked可以stash untracked文件。使用-a或者--all命令可以stash当前目录下的所有修改。
  2. 应用缓存
    • 应用并删除最近缓存的文件信息
      git stash pop
      
    • 获取栈顶缓存的文件信息:这种方式缓存不会出栈,只会获取栈顶缓存
      git stash apply
      
  3. 查看存储列表(存储栈中的所有元素)
    git stash list
    
  4. 删除某个存储元素
    git stash drop <stash-name>
    
    • <stash-name>指的是在 list 中每条记录中,冒号前面的部分;
  5. 查看指定stash的diff
    git stash show[ -p | --patch ]
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,758评论 1 26
  • 简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 与常用的版本控制工具 ...
    闽越布衣阅读 7,694评论 0 18
  • 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...
    Swiftor阅读 6,375评论 0 2
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 5,299评论 0 3
  • 寄诗别院赊秋色;月待圆时花正好;葫芦声起为谁吟;尊师可敬铭我心;
    娟好_静秀阅读 1,163评论 0 0