git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。git stash作用的范围包括工作区和暂存区中的内容,没有提交的内容都会保存至堆栈中。
- git stash save
带备注信息的git stash,会将备注信息存储起来;
git stash save “Your stash message”
- git stash list
查看存储列表
git stash list
-
git stash apply
将工作栈中最上面的 stash 应用到本地仓库中,可以通过 stash id 将某个 stash 应用到本地仓库中,本例中是 stash@{1};
git stash apply stash@{1}
- git stash pop
这个命令和 stash apply 非常相似,但它会在应用到本地仓库后删除这个 stash;也可以通过特定的 stash id 来 pop 某个 stash;
git stash pop stash@{1}
- git stash show
显示 stash 差异;这条命令只考虑和最近的 stash 比较;
完整的差异,可以使用
git stash show -p
通过 stash id 来查看某个 stash 的差异
git stash show stash@{1}
- git statsh branch [name]
根据最近的 stash 创建一个新的分支,然后删除最近的 stash(和 stash pop 一样);
如果需要某个 stash,可以指定stash id;
git stash branch <name> stash@{1}
- git stash clear
删除仓库中创建的所有的 stash
- git stash drop
删除工作栈中最近的 stash
可以指定stash id;
git stash drop stash@{1}
由于操作失误,导致远程代码被覆盖,此时可使用 git stash 解决;本地修改前应该尽可能的避免本地仓库与远程之间有过多的差异,本地修改前执行一次git pull先把远程更新拉到本地;提交前先把本地修改存入栈,然后从服务器端更新代码,这样可以避免过多的代码merge;
git stash git pull git pop 若有冲突解决冲突