当前位置:首页 > 编程技术 > 正文内容

git stash 命令详解(保存开发进度)

yc8881年前 (2022-12-13)编程技术239

1. 应用场景


git stash 命令用于将工作区中的更改和暂存区中的内容储存起来

日常开发中,会经常遇到这种场景

我们正在 dev 分支开发新功能,做到一半时,产品经理过来和我们反馈了一个紧急 bug,需要马上解决,但是做了一半的新功能又不想提交到版本库。这时可以使用 git stash push 先将当前进度保存起来,然后去修复 bug,修复完后使用 git stash apply 恢复之前保存的进度即可

场景1、需要切换到另一个分支(master)处理 bug

  1. git stash push -m '功能开发中'
  2. git checkout master

场景2、需要回到新功能编写前的状态,也就是 dev 分支的最新提交记录

  1. git stash push -m '功能开发中'

使用 git stash 的前提必须是版本库中已有提交记录,否则会出现下面提示

  1. $ git stash
  2. # 您还没有初始提交
  3. You do not have the initial commit yet

没有可以储存的内容(工作区中没有更改,暂存区中也没有内容)

  1. $ git stash
  2. # 没有要保存的本地更改
  3. No local changes to save

2. 添加储藏


添加储藏

  1. git stash

-m,--message 添加储藏和备注信息

  1. git stash push -m <message>

3. 查看储藏


查看所有储藏(所有分支共享储藏内容,而不是像提交记录每个分支都是独立的)

  1. git stash list

查看文件变动差异

  1. # 显示哪些文件变动了几行
  2. git stash show <stash>
  3. # 显示更加详细的变动信息,可以看到新增、减少了什么内容
  4. git stash show -p <stash>

4. 删除储藏


删除某个储藏

  1. git stash drop <stash>

清除所有储藏

  1. git stash clear

5. 使用储藏


应用储藏

  1. # 应用指定的储藏
  2. git stash apply <stash>
  3. # 应用并删除指定的储藏
  4. git stash pop <stash>

<stash> 指的是 git stash list 命令输出结果左侧的值,如下图所示

  1. # 错误:您对以下文件的本地更改将被“合并”覆盖
  2. error: Your local changes to the following files would be overwritten by merge:
  3. 1.txt
  4. # 请在合并前提交或隐藏更改
  5. Please commit your changes or stash them before you merge.

6. 常见用法


  1. # 添加存储
  2. git stash push -m <message>
  3. # 查看所有存储
  4. git stash list
  5. # 查看储藏文件差异
  6. git stash show -p <stash>
  7. # 应用储藏
  8. git stash apply <stash>
  9. # 应用并删除储藏
  10. git stash pop <stash>
  11. # 删除指定储藏
  12. git stash drop <stash>
  13. # 清空储藏
  14. git stash clear

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10218.html

标签: git
分享给朋友:

“git stash 命令详解(保存开发进度)” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...