git stash 理解
是什么
stash:存放,保存当前工作进度,会把暂存区和工作区的改动保存在一个栈上
后续可以在任何时候任何分支重新将某次的修改推出来,重新应用这些更改的代码
使用
git stash
git stash save
// 展示保存进度的列表
// 其后加 stash@{0}展示最新,{1}展示次新
git stash list
// 读取最近一次保存的内容,也就是栈顶的stash会恢复到工作区
// 与save作用相反,读取后移出
git stash pop
// 将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除
// 可多次应用到工作目录中,适应于多个分支的情况
git stash apply
// 查看堆栈中最新保存的stash和当前目录的差异
// git stash show -p查看不同文件的详细比较
git stash show
// git stash drop + stash名称:从堆栈中移除某个指定的stash
git stash drop
git stash clear
应用场景
git stash 用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作。
- 开发一半不想提交代码但需要同步关联远程代码,没有冲突可以直接 pull,有冲突 pull 会拒绝覆盖当前修改,那就可以:
// 依次运行下述
git stash
git pull
git stash pop
- 开发一半需要修改别的分支问题,可以先 stash 缓存当前区域代码:
// 保存开发一半的代码
git stash
// 修改别的分支后提交代码
git commit -m "修改问题"
// 代码再追加到最新提交之后
git stash pop