git stash 理解与应用场景
1. 是什么
2. 场景
答:
1.stash,译为存放,在 git 中,可以理解为保存当前工作进度,会把暂存区和工作区的改动进行保存,这些修改会保存在一个栈上
后续你可以在任何时候任何分支重新将某次的修改推出来,重新应用这些更改的代码
默认情况下,git stash会缓存下列状态的文件:
但以下状态的文件不会缓存:
如果想要上述的文件都被缓存,可以使用-u或者--include-untracked可以工作目录新的文件,使用-a或者--all命令可以当前目录下的所有修改
2.当你在项目的一部分上已经工作一段时间后,所有东西都进入了混乱的状态, 而这时你想要切换到另一个分支或者拉下远端的代码去做一点别的事情
但是你不想创建一次未完成的代码的commit提交,这时候就可以使用git stash
例如以下场景:
当你的开发进行到一半,但是代码还不想进行提交 ,然后需要同步去关联远端代码时.如果你本地的代码和远端代码没有冲突时,可以直接通过git pull解决
但是如果可能发生冲突怎么办.直接git pull会拒绝覆盖当前的修改,这时候就可以依次使用下述的命令:
或者当你开发到一半,现在要修改别的分支问题的时候,你也可以使用git stash缓存当前区域的代码
补充
补充:stash 常用命令速记:
git stash:把工作区 + 暂存区的修改压栈保存,工作区回到 HEAD 的干净状态。git stash -u/--include-untracked:连未跟踪的新文件一起存。git stash -a/--all:连.gitignore忽略的文件也存。git stash list:查看栈上所有 stash(命名形如stash@{0})。git stash pop:弹出最新一个 stash 并应用到工作区(会从栈中删除)。git stash apply stash@{0}:应用指定 stash 但不删除;git stash drop stash@{0}手动删。git stash branch <branch>:基于某个 stash 创建新分支,常用于 stash 太久之后忘记当时改了什么。
来源整理自:我的有道云笔记



