加个小鸡腿
git stash 用法总结和注意点
2018-09-04 18:02 加个小鸡腿 阅读(156510) 评论(2) 编辑 收藏常用git stash命令:
(1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
(8)git stash clear :删除所有缓存的stash
说明:新增的文件,直接执行stash是不会被存储的,举例如下:

如上图:在git status 那一步很明显可以看出来,我修改了README,添加了新文件abc.txt,然后执行了git stash save后,在执行git stash list 可以看到刚才的save是的信息,然后使用git stash show ,只显示了README的改动被存起来了。
我们知道,执行了git statsh 以后,被存起来的在当前目录再执行git status 就看不到了,但是我们现在再执行git status,如下:

这个文件还在,说明没有被存起来。说白了就是没有在git 版本控制中的文件,是不能被git stash 存起来的。
那要怎么办呢,这个文件我也想存起来,很明显,先执行下git add 加到git版本控制中,然后再git stash就可以了,如下:

最后一步可以看出来,这个新增文件已经被stash了。
这个时候再执行下git status ,被存起来的在当前目录就看不到了,如下:

这个时候,想切分支就再也不会报错有改动未提交了。
如果要应用这些stash,直接使用git stash apply或者git stash pop就可以再次导出来了。
总结下:git add 只是把文件加到git 版本控制里,并不等于就被stash起来了,git add和git stash 没有必然的关系,但是执行git stash 能正确存储的前提是文件必须在git 版本控制中才行。
参考的一个链接中说到了以下,我摘录此处备份下(就是只stash一部分文件):
常规 git stash 的一个限制是它会一下暂存所有的文件。有时,只备份某些文件更为方便,让另外一些与代码库保持一致。一个非常有用的技巧,用来备份部分文件:
- add 那些你不想备份的文件(例如: git add file1.js, file2.js)
- 调用 git stash –keep-index。只会备份那些没有被add的文件。
- 调用 git reset 取消已经add的文件的备份,继续自己的工作。
参考链接:
https://blog.csdn.net/jeffasd/article/details/53107182
http://www.cppblog.com/deercoder/archive/2011/11/13/160007.aspx
https://blog.csdn.net/baidu_21578557/article/details/52137324
https://blog.csdn.net/kingboyworld/article/details/76408819
https://blog.csdn.net/AndyNikolas/article/details/79906132
- 分类 git/gerrit
-
#1楼 曹浩政 2019-10-30 15:44
学到了东西,感谢分享 支持(0) 反对(0) -
#2楼 4418182 11/7/2019 3:26:35 PM snowlch 2019-11-07 15:26
不错 支持(0) 反对(0)
【推荐】悬赏10万,基于领先NLP技术,开发新一代交互式文本智能机器人
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
【推荐】5.23智慧医疗前沿技术沙龙,特邀多位医疗公司CEO上线直播
相关博文:
· git-stash用法小结
· Git的add、commit、push命令
· gitstash命令使用手册
· 【Git】Git 本地的撤销修改和删除操作
· Git 简易手册
» 更多推荐... 最新 IT 新闻:
· 花点时间CEO:100%退款并追加同等现金赔偿
· 雷军两会建言:推动卫星互联网行业发展
· 天猫精灵战略“扩编”,目标孵化10个“米家”
· B站向左,知乎向右
· 前迪士尼高管领衔TikTok,张一鸣为何交出字节跳动全球最强产品?
» 更多新闻...
About
昵称: 加个小鸡腿园龄: 2年6个月
粉丝: 15
关注: 1 +加关注
最新评论
- Re:git checkout .还可以恢复吗
local history 里面成功找回
-- jeyfang - Re:android studio 设置安装不占用C盘
我更改了.gradle用第二种方法后打开AS发现设置里gradle的位置还是原来的位置,所以相当于用第三种方法又做了更改,但是当我重新运行模拟器的时候c盘原来的位置又新建了一个.gradle文件,我也... -- 任务驱动型人才 - Re:Jenkins 主备master-slave模式搭建
@ 情傷棒棒哒! 我可能是安装vs2015的时候默认装了,所以咩有单独安装.NET Framework,感谢你的分享... -- 加个小鸡腿 - Re:git bash 报错bash: *: command not found
@ abcnullno problem !... -- 加个小鸡腿 - Re:git bash 报错bash: *: command not found
您好!博主,这篇文章觉得很赞,希望能够转载到csdn上 -- abcnull
随笔档案
- 2020年5月(5)
- 2020年4月(4)
- 2020年3月(13)
- 2020年1月(2)
- 2019年12月(8)
- 2019年9月(1)
- 2019年4月(1)
- 2019年3月(4)
- 2019年2月(1)
- 2019年1月(3)
- 2018年12月(1)
- 2018年11月(8)
- 2018年10月(3)
- 2018年9月(15)
- 2018年8月(12)
- 2018年7月(13)
- 2018年6月(11)
- 2018年5月(4)
- 2018年4月(2)
- 2018年3月(8)
- 2018年2月(3)
- 2018年1月(2)
- 2017年12月(7)
推荐排行榜
- 1. git stash 用法总结和注意点(10)
- 2. git push 报错:missing Change-Id in commit message footer(4)
- 3. Git Your branch is ahead of 'origin/master' by X commits解决方法(1)
- 4. git checkout .还可以恢复吗(1)
- 5. Jenkins 主备master-slave模式搭建(1)
日历
|
||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
| 26 | 27 | 28 | 29 | 30 | 1 | 2 |
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | 1 | 2 | 3 | 4 | 5 | 6 |
随笔分类
阅读排行榜
- 1. git stash 用法总结和注意点(156491)
- 2. bat/cmd将命令执行的结果赋值给变量(33561)
- 3. git push 报错:missing Change-Id in commit message footer(21255)
- 4. git push 提交某一个commit(15698)
- 5. git cherry-pick 报错is a merge but no -m option was given(14498)
Copyright © 2020 加个小鸡腿
Powered by .NET Core on Kubernetes