1、前言
我们经常会在多个分支上进行开发,当切换分支的时候,如果当前分支有未提交的记录则会提示我们解决冲突,这时可以使用git stash相关命令将当前分支的工作内容保存起来,后续再恢复即可。并且可以在多个分支使用,恢复的时候也可以选择不同的记录进行恢复。
2、常用命令
2.1 git stash 和 git stash save “”
git stash 和 git stash save ""
保存当前的工作区与暂存区的状态,把当前的修改的保存到git 栈,等以后需要的时候再恢复,git stash 这个命令可以多次使用,每次使用都会新加一个stash@{num},num是编号。
git stash save命令相当于自定义注释
2.2 git stash list
git stash list
查看之前存储的所有版本列表,如图:
2.3 git stash pop 和 git stash apply
git stash pop stash@{$num} 和 git stash apply stash@{$num}
这两个命令都可以指定恢复版本,git stash apply 不同于git stash pop的是该命令不会将内容从堆栈中删除 ,而git stash pop 会将当次版本内容删除。 git stash pop 不指定版本的话默认恢复git栈中最新的一个stash@{num},建议在git栈中只有一条的时候使用,以免忘记指定版本造成混乱。
2.4 git stash drop
git stash drop stash@{$num}
从堆栈中移除指定的stash,如图:
2.5 git stash clear
git stash clear
清除所有的存储进度
2.6 git stash show
git stash show
查看堆栈中最新保存的stash和当前目录的差异。
3、注意:
如果在执行命令时,例如使用 ’git stash pop stash@{}‘时,通常会遇到如‘error: unknown switch `e’,
此类的报错,这种问题是因为花括号在 PowerShell 中被认为是代码块执行标识符,若想正常使用,可用反引号 `进行转义,例如:
git stash pop stash@`{0`}