前两天第一次接触这个命令,纪录一下吧。当时的情景好像是已经commit到了某个分支,但发现还没有rebase之前的代码,所以应该先停止进行提交,就用了git stash 命令,先进行了rebase。
- 当在一个分支的开发工作未完成,却又要切换到另外一个分支进行开发的时候,除了commit原分支的代码改动的方法外,我觉得git stash是一个更加便捷的选择。
- 添加改动到stash。在原分支git stash save -a "message", 对于项目中国年加入了代码新文件的开发来说,-a选项会将新加入的代码文件同时放入暂存区。
- 恢复改动。若要恢复最近一次的改动,git stash pop即可。若有多次stash操作,就通过git stash list查看stash列表。从中选择想要pop的stash,运行命令git stash pop stash@{id}或者git stash apply stash@{id}.
- 删除stash。git stash drop <stash@{id}>如果不加stash编号,默认的就是删除最新的,加编号就是删除指定编号的stash。git stash clear 是清除所有stash。
-
git stash pop 与** git stash apply <stash@{id}> 的区别。
当我使用git stash pop **和 git stash apply 几次以后,我发现stash list 好像比我预计的多了几个stash。于是我便上网去了解了一下这两个命令的区别。原来git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除,而 git stash apply stash@{id} 命令则会继续保存stash id。对于有点强迫症的我来说,是容不下越来越多的陈旧stash id 仍然存在的,所以我更习惯于用git stash pop 命令。