Git(12)-stash, 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 中的命令使用单引号指明 整个短语作为命令行参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值