Git(12)-stash, reflog
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相关推荐
- Git 12 岁了,送给你 12 个 Git 使用技巧
转载自 Git 12 岁了,送给你 12 个 Git 使用技巧 Git,一个分布式版本控制系统,它已经成为了开源世界的源码控制默认工具,在4月7号12岁了.但是使用Git中更另人沮丧的是,你需要了解多 ...
- Git 使用 stash暂存代码
如果你修改了代码没有commit提交本地库,git拒绝你切换分支. 如果我们不想提交不完善的代码,但是得去修改一个紧急Bug,此时 stash 可将当前未提交到本地仓库的代码,储藏(stash)到Gi ...
- git 如何stash(储藏)部分文件
今天工作时遇到一个问题,新做的功能有问题,加了好多调试信息,另外想回退到上一次的版本看一下运行时的代码堆栈有什么不同,这就需要把加的调试信息stash起来,不然回退的时候会冲突.但是目录下还有好多被I ...
- IDEA的Shelve与Git的Stash之间的区别
前言 在日常开发中,会遇到需要在不同的开发任务之间切换的情况,此时,如果手中有尚未写完的代码,就需要使用某种方法先保存起来,之后再继续处理没写完的代码. 有两种方法可以解决上述问题:一个是利用IDEA ...
- Git的stash操作
假设你正在为你的产品增加一项新需求.正在编写新需求代码时,突然出现了一起客户投诉的Bug.这时,你不得不暂时放下手头上的新需求一段时间.你还不能commit未完成的代码,当然你也肯定不想把已经写好的代 ...
- git查看stash内容
git stash show -p stash@{3}
- Git之Stash(储藏)备份当前的工作区的内容
1 今天遇到的问题 我Git关联的项目,本地做了修改,然后我需要git pull拉别人的代码或者我需要修改其它的bug,本地做了修改我又不想合并,这个时候就可以使用git stash git stas ...
- git使用stash存储相关操作
git stash 将当前修改存储起来 git stash apply 恢复最近一次存储 git stash apply stash@{2} 恢复某一次存储 git stash list 查看存储列 ...
- git查看stash里面的具体内容
1.查看stash list(所有的stash) git stash list 2.查看某个stash具体内容 git stash show -p stash@{3}
最新文章
- apiCloud中的数据库操作mcm-js-sdk的使用
- 浅谈先验分布和后验分布
- xml教程之约束schema
- php form提交跳转,form表单页面跳转方式提交练习
- 再次学习javascript中的參数传递
- 计算机的iscsi配置,PC端的iSCSI参数设置方法
- Hologres如何支持亿级用户UV计算
- Mysql(二)——简单查询及示例
- POJ3254Corn Fields——状态压缩dp
- c++ opencv实现区域填充_利用opencv之为图像添加边框
- android 文件上传参数,Android OkHttp Post上传文件并且携带参数实例详解
- Android5g手机,这几款5G手机,入手三年不卡,不妨试一下
- selenium+java+TestNG 使用enabled 参数 —— 禁止执行一些case
- 小码哥C++_汇编指令
- 程序集版本号,文件版本号及发布版本号管理
- asp数组函数LBound 、UBound和Split
- android 上传nexus_上传 Android aar 到 nexus 上
- 一、线性模型----Lasso、Ridge回归及正则化的初步理解
- 客户标签不能只是个“标签”
- 如何学习 C++ 如何学习一门较复杂的编程语言 【转】
热门文章
- python应声虫程序_Python编程基础
- html图片轮播怎么做的,CSS3制作轮播图的一种方法
- centos7 安装redis_Redis6安装(上) - 单机单实例
- g++ linux 编译开栈_linux gcc和g++版本的修改
- hive sql 怎么实现循环_Hive存储过程实现-hpsql
- linux 字符串截取_linux下可执行文件分析
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)
- 推荐使用:Vue.js ReactJS Angular 2 AngularJS
- 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用
- Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象