Git:git stash存储文件修改
git stash 用法总结和注意点
https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html
常用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:git stash存储文件修改相关推荐
- Git丢弃不要的修改
在项目的某次修改中,可能包括添加.删除.更新了一些文件,结果并不好.这时想要丢弃这些修改. 这些变动包括2中类型: tracked file(s) untracked file(s) 使用git cl ...
- Git 使用 stash暂存代码
如果你修改了代码没有commit提交本地库,git拒绝你切换分支. 如果我们不想提交不完善的代码,但是得去修改一个紧急Bug,此时 stash 可将当前未提交到本地仓库的代码,储藏(stash)到Gi ...
- Git 储藏(stash)详解
文章目录 单次储藏及应用 多次储藏及应用 对特定范围文件进行储藏 此文在阅读前需要有一定的git命令基础,若基础尚未掌握,建议先阅读这篇文章Git命令播报详版 在平常的工作中,当我们在单独拉取的功能分 ...
- git 如何stash(储藏)部分文件
今天工作时遇到一个问题,新做的功能有问题,加了好多调试信息,另外想回退到上一次的版本看一下运行时的代码堆栈有什么不同,这就需要把加的调试信息stash起来,不然回退的时候会冲突.但是目录下还有好多被I ...
- git修改代码后,如何再git pull而不覆盖修改的代码
一. git pull不覆盖修改的代码: 先把修改好的代码存放在缓存里,等代码拉下来以后再恢复缓存里的修改的代码 步骤: 1.git stash save "这里是注释" 2.gi ...
- IDEA的Shelve与Git的Stash之间的区别
前言 在日常开发中,会遇到需要在不同的开发任务之间切换的情况,此时,如果手中有尚未写完的代码,就需要使用某种方法先保存起来,之后再继续处理没写完的代码. 有两种方法可以解决上述问题:一个是利用IDEA ...
- git切换分支保存修改的代码的方法
刚才做操作发现一个问题,就是本地有一个old分支,此时本地又new了一个新的分支,那么我在old分支上做修改后切换到new分支上,发现文件是修改后的.原本理解是一个分支一套代码,那么为什么此时代码是一 ...
- Linux 环境 搭建Git 服务器,并且修改SSH端口使用
1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...
- 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 )
文章目录 一.创建并切换分支 git switch -c feature1 二.修改 feature1 分支并提交 三.修改 master 主版本并提交 一.创建并切换分支 git switch -c ...
最新文章
- RabbitMQ-1
- Spring Bean 装配和依赖注入
- 关于sqlite数据库在使用过程中应该注意以下几点
- [云炬python3玩转机器学习笔记] 2-1机器学习基础概念
- Rancher2.0中邮件通知的设置
- UVA-804 模拟
- ezdpl Linux自动化部署实战
- hql Hibernate.gethibernatetemplate()
- java main 如何不退出_为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了...
- serialVersionUID的作用以及如何用idea自动生成实体类的serialVersionUID
- 【Pytorch神经网络基础理论篇】 07 线性回归 + 基础优化算法
- 微型计算机原理王,微型计算机原理王1王忠民著.ppt
- 添加roster好友 命令
- TCP 协议学习小结
- Egert实现五点连线(创意参考:网易爱的不同定义)[附源码]
- Py之seaborn:数据可视化seaborn库(一)的柱状图、箱线图(置信区间图)、散点图/折线图、核密度图/等高线图、盒形图/小提琴图/LV多框图的简介、使用方法之最强攻略(建议收藏)
- 毕业4年,给自己来个了结,^_^
- 阿拉伯数字转换成中文数字 C++
- 概率论学习三、古典概型
- 京东3元无门槛优惠券变京豆