笔名:  haibiscuit

博客园: https://www.cnblogs.com/haibiscuit/

Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star)

本项目地址: https://github.com/haibiscuit/StudyBook

尊重笔者的劳动成果,未经允许请不要转载

二:git stash

作用:

将工作区的文件修改的内容暂存到栈中(前提是修改文件已被add到暂存区中)

使用前提:

使用git stash需要保证工作区的文件add到暂存区,如果工作区修改,但是没有放到暂存区,或是工作区根本没有修改任何文件,git stash命令是不起作用的.

使用场景:

当你切换分支的时候,如果工作区有修改的文件,不管你是否放到暂存区,切换到新的分支后,你修改文件的内容仍将可以看到,影响你的工作.

所以,当你需要切换分支的时候,为了不让工作区已被修改的文件影响到其他分支内容,需要使用git stash暂存修改内容.

当你使用git stash后,你修改的内容不管是在当前分支还是切换到其他分支,你修改的内容就不会被看到.

正确的使用姿势:

(1) .切换到其他分支前(此时工作区有文件被修改)

1.1 git add     //将修改内容放入暂存区

1.2 git status  //查看修改内容的状态(推荐常用)

1.3 git stash   //将修改的内容放到栈中

(2) .回到该分支

2.1 git stash list   //查看栈中有没有放入的内容

2.2 git stash pop  //将放到栈中的内容放回工作区(这时就可以看到被修改的文件了)

2.3 git stash list   //确保栈中没有其他的文件

(3).其他不常用命令(没不要下面的命令就别用了)

3.1 git stash apply //恢复工作区修改文件(但是恢复后,stash内容并不删除你需要用git stash drop来删除)

3.2 git stash drop  //删除栈顶内容

3.3 git stash clear  //清空栈中内容(慎用)

(4).加深理解

为了加深对git stash的理解,执行以下命令

 

4.1 touch test.txt   //新建test.txt文件

4.2 vim test.txt     //使用vim在test.txt中添加一些内容(这一步很重要)

4.3 git add test.txt  //将test.txt文件放入暂存区

4.4 git stash       //将修改的内容添加到栈中(此时会发现工作区的test.txt添加的内容消失,即是空文件)

4.5 git stash drop   //删除栈顶内容

4.6 git status       //查看修改内容状态

 

(注:

在执行4.4 git stash那一步时会发现工作区修改的内容会消失,即工作区呈现的内容是本地仓库当前版本的内容

另外4.5 git stash drop那一步很危险,执行该命令就找不回你修改的内容了)

Git实战指南----跟着haibiscuit学Git(第三篇)的更多相关文章

  1. Git实战指南----跟着haibiscuit学Git(第五篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  2. Git实战指南----跟着haibiscuit学Git(第十一篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  3. Git实战指南----跟着haibiscuit学Git(第九篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  4. Git实战指南----跟着haibiscuit学Git(第六篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  5. Git实战指南----跟着haibiscuit学Git(第一篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  6. Git实战指南----跟着haibiscuit学Git(第二篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  7. Git实战指南----跟着haibiscuit学Git(第十篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  8. Git实战指南----跟着haibiscuit学Git(第八篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  9. Git实战指南----跟着haibiscuit学Git(第七篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  10. Git实战指南----跟着haibiscuit学Git(第四篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

随机推荐

  1. alloc 和 init都做了什么验证。

    结论: alloc负责分配内存和创建对象对应的isa指针: init只是返回alloc生成的对象.  所以alloc后,多次调用init,返回的对象是同一个! 代码如下: // // main.m / ...

  2. 华为云ROMA,联接企业应用的现在与未来

    2019.9.19日,在华为全联接大会的华为云Summit中,华为云CTO宇昕总提出:"企业的应用与数据集成,始终是数字化转型和智能化升级的关键,华为云企业应用与数据集成平台ROMA,打破时 ...

  3. RestTemplate常用的get和post带参数请求

    在RestTemplate提供的方法中,有一个参数就是目标URL,参数是跟在后面的一个数量可变参数,但是在这里就有个问题,这个方法怎么知道我传的参数值是对应在目标接口的哪个参数的呢: public & ...

  4. Oracle触发器用法--基础教学

    1.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行.因此触发器不需要人为的去调用,也不能调用.然后,触发器的触发条件其实在你定义的时候就已经设定好了.这里面需 ...

  5. [TimLinux] asciinema Linux终端录制工具嵌入私有web中

    yum install asciinema https://github.com/asciinema/asciinema-player # 下载asciinema-player.css, asciin ...

  6. 支付宝支付功能(使用支付宝sdk)

    1.准备参数        新建一个公共参数配置类NewAlipayconfig (可将参数存放到config配置文件中读取)          public class NewAlipayconfi ...

  7. 小白学 Python 爬虫(19):Xpath 基操

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. Bean 字段复制利器 MapStruct

    本文聊一个工具类,MapStruct ,它是一个在 dto,po(do/entity),vo 等这些 pojo 中转换字段的一个工具,在应用中经常有这样的转换,在 spring 和 apache-co ...

  9. 基于python的种子搜索网站(三)项目部署

    项目部署过程 系统要求:ubuntu 16.04(或以上) 环境搭建和配置,必须严格按照以下步骤来安装部署!如有问题可以咨询(weixin:java2048) 安装部分 安装nginx sudo ap ...

  10. Mock接口依赖的使用

    mock 能做什么 1.前后端联调,如果你是一个前端页面开发,现在需要开发一个功能:下一个订单,支付页面的接口,根据支付结果,支付成功,展示支付成功页,支付失败,展示支付失败页.要完成此功能,你需要 ...