我们在开发的时候往往会遇到这种情况, 在一个分支开发,写了不少内容,但是突然来了一个紧急的需求需要切换分支,去做这个需求,但是当前的分支又因为没有开发完成,不想形成一条无效的commit记录,这时我们就到暂存上场了
git stash 暂存
// 切分支之前 对当前分支修改的内容进行暂存
git stash
git stash list 查看暂存列表
// 可以查看暂存区的所有内容
git stash list
git stash save 暂存添加注释
// '注释' 命令 对暂存的内容进行注释 方便查找
git stash save '注释内容'
git pop 恢复暂存的内容到本地并删除这条暂存
// 将最新的一次暂存记录的代码恢复到本地 并且会在暂存区将这次记录删除 如果要应用并删除其他stash,命令:git stash pop --index {$num} ,比如应用并删除第二个:git stash pop --index 1 或者 git stash pop stash@{1}
git stash pop
git stash pop --index 1
git stash pop stash@{1}
git stash apply 暂存恢复到本地不删除暂存区
git stash apply
//对应的编号 将暂存恢复到本地 又不删除记录 默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply --index {$num} , 比如第二个:git stash apply stash@{1} 或者 git stash apply stash@{1}
git stash apply --index 1
git stash apply stash@{1}
git stash show 查看暂存区与本地的区别
// 查看暂存区与本地代码的区别 默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show
git stash show -p 查看存储的改动
// 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
git stash show -p
git stash drop 只删除记录
git stash drop
git stash drop stash@{$num} // 删除指定记录
git stash clear 清空暂存记录
git stash clear
异常报错
error: unknown switch `e’
usage: git stash drop [-q|–quiet] []
-q, --quiet be quiet, only report errors
以上的这种报错
这种问题是因为VSCode中,花括号在 PowerShell 中被认为是代码块执行标识符,若想正常使用,可用反引号 进行转义:stash@
{0’}
或者可以使用 git bash cmd 等
git stash pop stash@`{0`}
注意项
注: 新增的文件未被git管理 需要先git add . 再git stash
这里只是列举了一部分常用的(各版本用法可能存在差异) 更为详细的可移步官方文档https://git-scm.com/docs/git-stash/zh_HANS-CN