git stash 命令

一、添加改动到stash

在原分支添加暂存 git stash save "messeag" 

二、恢复改动

如果你要恢复的是最近的一次改动,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编号,默认的就是删除最新的,也就是编号为0的那个,加编号就是删除指定编号的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 命令。

慎用git stash save -a

一直都是使用git stash来暂存临时修改,昨天搜到了这篇文章git stash 命令 ,说是用git stash save -a会将新加入的代码文件同时放入暂存区,我信了,结果没想到带来了坑,想用git stash pop恢复时居然提示

xxxx already exists, no checkout
Could not restore untracked files from stash

最明显的就是Pod文件夹中的文件都提示这个错误,而Pod文件夹我是在.gitignore中忽略的。 

-a表示all,是不仅仅把新加入的代码文件放入暂存区,还会把用.gitignore忽略的文件放入暂存区。如果想不影响被忽略的文件,那就要用-u,表示untracked files


未经允许请勿转载:程序喵 » git stash 命令

点  赞 (0) 打  赏
分享到: