git stash

  • 1. git stash
  • 2. reflog

命令概览

git stash save  "WIP:xxxxx"  # save后可以跟笔记,WIP:work in process
git stash list               # 查看存储状态栈的条目
git stash pop                # 当前工作目录和索引还原至最近一次save操作的内容
git stash apply              # git stash apply + git stash drop = git stash pop
git stash drop
git stash save --include-untracked   # 储藏未被追踪的文件
git stash save --all
git stash branch newbranch           # 基于储藏条目生成一个新的分支
git reflog show               # 显示HEAD引用的变更日志
git reflog branch_name        # 显示某个分支头部引用的变更日志
HAED@{yesterday}              # 支持时间限定负作为事件(提交、变更头部)的别名
git stash show -p stash@{3}   # 查看某个stash 的具体内容

1. git stash

典型工况1: 中断工作流
典型工况2: 在脏的树中进行拉取(pull into a dirty tree)

git stash save 保存当前索引和工作目录的状态,并且将当前索引和工作目录的内容清除并匹配到当前分支的头部。git stash 命令默认就是git stash save.

git stash pop 执行与stash相反的操作,实现了一个存储状态栈。pop将当前工作目录和索引还原至最近一次save操作的内容。pop操作会合并当前工作目录和索引中的现有变更,所以可能需要手动解决冲突。

git stash list 可以查看存储状态栈的内容。

git stash drop 当pop 操作成功后, Git会自动将存储状态栈中保存的状态删除, 即git stash list 的条目会少一条。但是有冲突产生时,需要手动解决冲突,然后手动git stash drop。删除最上面那条状态。

git stash pop = 成功的git stash apply + git stash drop . 可以灵活的应用git stash apply 来将它应用到几个不同的提交中(在不同的分支下pop/apply 不知道会出现什么问题)

git stash save --include-untracked 储藏未被追踪的文件。

git stash save --all 搜集所有未被追踪的文件,以及在.gitignore 和 exclude 文件中明确忽略的文件。

注意:对于更复杂的存储操作,想要选择性地选取希望存储地部分,可以使用-p,或者-patch 选项

git stash branch newbranch 基于储藏条目生成时地提交,然后将保存的储藏内容转换到一个新的分支。只是一个功能,但实际作用不大。

提示:对于stash 一般作为临时存放点,切记滥用储藏。

2. reflog

引用日志记录非裸版本库中分头部的改变,任何修改引用 或者 更改分支头部 的git 操作都会git 记录下来。可以手动的配置是否开启reflog.

git reflog show 命令一次只显示一个引用的内容,默认引用是HEAD。分支名也是引用,可以展示任何分支的引用日志。
git reflog branch_name

引用日志中 如 HEAD@{7} 为每一件更改提供方便的别名。 大括号支持 类英文限定符号。
当你不确定自从某件事情发生以来中间发生了什么事情,但你知道一个小时/一天前他还是好的。就可以使用HEAD@{yesterday} 来恢复相应的提交。

git 针对引用支持大量的基于日期的限定符:yesterday, noon, midnight, tea, week, month, A.M. P.M. 等标识。

注意点:shell 中的命令使用单引号指明 整个短语作为命令行参数。

Git(12)-stash, reflog相关推荐

  1. Git 12 岁了,送给你 12 个 Git 使用技巧

    转载自 Git 12 岁了,送给你 12 个 Git 使用技巧 Git,一个分布式版本控制系统,它已经成为了开源世界的源码控制默认工具,在4月7号12岁了.但是使用Git中更另人沮丧的是,你需要了解多 ...

  2. Git 使用 stash暂存代码

    如果你修改了代码没有commit提交本地库,git拒绝你切换分支. 如果我们不想提交不完善的代码,但是得去修改一个紧急Bug,此时 stash 可将当前未提交到本地仓库的代码,储藏(stash)到Gi ...

  3. git 如何stash(储藏)部分文件

    今天工作时遇到一个问题,新做的功能有问题,加了好多调试信息,另外想回退到上一次的版本看一下运行时的代码堆栈有什么不同,这就需要把加的调试信息stash起来,不然回退的时候会冲突.但是目录下还有好多被I ...

  4. IDEA的Shelve与Git的Stash之间的区别

    前言 在日常开发中,会遇到需要在不同的开发任务之间切换的情况,此时,如果手中有尚未写完的代码,就需要使用某种方法先保存起来,之后再继续处理没写完的代码. 有两种方法可以解决上述问题:一个是利用IDEA ...

  5. Git的stash操作

    假设你正在为你的产品增加一项新需求.正在编写新需求代码时,突然出现了一起客户投诉的Bug.这时,你不得不暂时放下手头上的新需求一段时间.你还不能commit未完成的代码,当然你也肯定不想把已经写好的代 ...

  6. git查看stash内容

    git stash show -p stash@{3}

  7. Git之Stash(储藏)备份当前的工作区的内容

    1 今天遇到的问题 我Git关联的项目,本地做了修改,然后我需要git pull拉别人的代码或者我需要修改其它的bug,本地做了修改我又不想合并,这个时候就可以使用git stash git stas ...

  8. git使用stash存储相关操作

    git stash  将当前修改存储起来 git stash apply 恢复最近一次存储 git stash apply stash@{2} 恢复某一次存储 git stash list 查看存储列 ...

  9. git查看stash里面的具体内容

    1.查看stash list(所有的stash) git stash list 2.查看某个stash具体内容 git stash show -p stash@{3}

最新文章

  1. apiCloud中的数据库操作mcm-js-sdk的使用
  2. 浅谈先验分布和后验分布
  3. xml教程之约束schema
  4. php form提交跳转,form表单页面跳转方式提交练习
  5. 再次学习javascript中的參数传递
  6. 计算机的iscsi配置,PC端的iSCSI参数设置方法
  7. Hologres如何支持亿级用户UV计算
  8. Mysql(二)——简单查询及示例
  9. POJ3254Corn Fields——状态压缩dp
  10. c++ opencv实现区域填充_利用opencv之为图像添加边框
  11. android 文件上传参数,Android OkHttp Post上传文件并且携带参数实例详解
  12. Android5g手机,这几款5G手机,入手三年不卡,不妨试一下
  13. selenium+java+TestNG 使用enabled 参数 —— 禁止执行一些case
  14. 小码哥C++_汇编指令
  15. 程序集版本号,文件版本号及发布版本号管理
  16. asp数组函数LBound 、UBound和Split
  17. android 上传nexus_上传 Android aar 到 nexus 上
  18. 一、线性模型----Lasso、Ridge回归及正则化的初步理解
  19. 客户标签不能只是个“标签”
  20. 如何学习 C++ 如何学习一门较复杂的编程语言 【转】

热门文章

  1. python应声虫程序_Python编程基础
  2. html图片轮播怎么做的,CSS3制作轮播图的一种方法
  3. centos7 安装redis_Redis6安装(上) - 单机单实例
  4. g++ linux 编译开栈_linux gcc和g++版本的修改
  5. hive sql 怎么实现循环_Hive存储过程实现-hpsql
  6. linux 字符串截取_linux下可执行文件分析
  7. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)
  8. 推荐使用:Vue.js ReactJS Angular 2 AngularJS
  9. 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用
  10. Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象