慎用git stash save -a
来源:互联网 发布:手机噪音检测软件 编辑:程序博客网 时间:2024/05/24 07:26
http://m.blog.csdn.net/article/details?id=26815433
一直都是使用git stash来暂存临时修改,昨天搜到了这篇文章git stash 命令 ,说是用git stash save -a会将新加入的代码文件同时放入暂存区,我信了,结果没想到带来了坑,想用git stash pop恢复时居然提示
xxxx already exists, no checkoutCould not restore untracked files from stash
最明显的就是Pod文件夹中的文件都提示这个错误,而Pod文件夹我是在.gitignore中忽略的。
-a表示all,是不仅仅把新加入的代码文件放入暂存区,还会把用.gitignore忽略的文件放入暂存区。如果想不影响被忽略的文件,那就要用-u,表示untracked files。
http://m.blog.csdn.net/article/details?id=26815433
关于git stash命令的使用方法网上一大把,我想记录的是我在使用过程中觉得实用及好用的:
当在一个分支的开发工作未完成,却又要切换到另外一个分支进行开发的时候,除了commit原分支的代码改动的方法外,我觉得git stash是一个更加便捷的选择。
步骤如下:
一、添加改动到stash。在原分支 git stash save -a "messeag",网上很多很多资料都没有加 -a 这个option选项,我想他们的代码开发可能都是在原代码上进行修改吧。而对于在项目里加入了代码新文件的开发来说,-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编号,默认的就是删除最新的,也就是编号为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
- git stash
- git stash
- git stash
- Git Stash
- git stash
- git stash
- git stash
- git stash
- git stash
- git-stash
- git stash
- git stash
- git stash
- git stash
- c++遍历数组
- 简单实例化解析安卓Thread线程
- 求π近似值
- 蒙特卡洛方法——玩具例子(1)圆周率
- C# Socket简单例子(服务器与客户端通信)
- 慎用git stash save -a
- 158象棋(13)
- Android应用安全机制
- AFNetworking等待网络请求,继续同步操作
- Dom笔记2
- Ubuntu 14.04 英文系统 安装中文搜狗输入法
- c++动态链接库调试设置
- ComponentCallbacks2
- java的反射和注解