前言
目录
git stash -m
git stash list
git stash pop
git stash apply index
git stash drop index
git stash clear
特定范围文件储存
git stash [-S|--staged]
git stash [-u|--include-untracked]
git stash [-a|--all]
将当前未提交的修改(即工作区和暂存区的修改)先暂时储藏起来,保存到一个栈中,并恢复工作目录到干净的 HEAD 状态。这样可以在不提交当前更改的情况下,切换到其他分支或进行其他操作。
git stash -m
将当前未提交的修改(即工作区和暂存区的修改)先暂时储藏起来
在工作区中新建文件3.txt,查看状态,此时的3.txt文件在工作区,还没有放到暂存区
将3.txt放到暂存区
使用命令储存3.txt -m后面是备注信息
储存后,工作区就没有该文件了
git stash list
查看储存
git stash pop
弹出最后一次储存
查看储存,此时为空
将3.txt存入
在工作区修改3.txt后,再次储存
查看此时储存的文件,有两个
WIP意为work in progess, index
用于后面取出所对应储存的修改
stash@{index}: WIP on [分支名]: [最近一次的commitID] [最近一次的提交信息]
git stash apply index
取出指定index
的储藏的修改到工作区中
取出index为0的文件
查看储存列表,仍然存在
工作区中出现文件3.txt
再尝试取出index为1的文件,报错,因为刚才已经取出了一个文件
git stash drop index
将指定index
的储存从储存记录列表中删除
查看储存列表,看到此时文件的index由1变成了0
git stash clear
储藏记录多的话,一个个删除太麻烦,可以批量删除
将文件放入暂存区
再次存入
取出1
在工作区修改文件,然后放入暂存区
储存并查看储存列表
删除并查看,此时的储存列表已经为空
特定范围文件储存
新建文件4、5、6
将4放入暂存区,6提交到版本库,然后再工作区修改文件6的内容,查看状态,现在的三个文件分别对应三种状态
4:新增加到暂存区的文件
5:新建的文件,没有放到暂存区
6:已经提交到版本库的文件,但在工作区进行了修改
git stash [-S|--staged]
只对暂存区文件进行储藏
看到工作区中的4.txt文件不在了,4.txt已经储存了
git stash [-u|--include-untracked]
对未追踪文件也进行储藏
新建文件7,放到暂存区
执行命令
看到工作区的5、7文件都不在了
弹出
工作区恢复
git stash [-a|--all]
对所有文件进行储藏
此时状态
执行指令
此时的工作区,并且之前对文件6的修改恢复了
弹出
工作区文件恢复,且对文件6的修改也恢复了