当前位置: 首页 > news >正文

【git】 贮藏 stash

贮藏是我在sourcetree上看到的名词。之前只是浅浅的用来收藏一下修改的文件,没有完整的使用过。今天有幸使用了一次就来展开说说。

使用原因就不赘述了,错误的操作少提为好,操作步骤如下:

  1. 查看贮藏列表
    git stash list
    #输出:
    #stash@{0}: On issue-19-1-1: XXXXXXX
    
  2. 查看储藏的文件差异:
    git stash show stash@{0} --statjs/common/xx.js | 2 +-1 file changed, 1 insertion(+), 1 deletion(-)
    
  3. 应用储藏的文件git stash apply stash@{0}
  4. 提交更改
    git add .
    git commit -m 'chore: 修改单词拼写错误(extentType改为extendType) Update #27'
    git push
    
  5. 删除储藏项git stash drop stash@{0}

Git Stash相关

Git Stash:暂存工作,灵活切换

在 Git 工作流程中,我们常常遇到需要临时中断当前工作、切换到其他任务的情况。git stash 是一个非常实用的命令,它允许你将当前未提交的更改暂存起来,以便稍后恢复,从而让你能够更灵活地管理代码变更。

基本概念

git stash 的核心功能是将当前工作目录和暂存区中的更改保存到一个栈中,这个栈被称为 “stash stack”。它就像一个临时的存储空间,你可以将未完成的工作放在这里,等需要时再取出来继续工作。

常见用法

保存当前工作

当你在某个分支上进行开发,突然需要切换到其他分支处理紧急任务时,可以使用以下命令保存当前工作:

git stash

这会将当前未提交的更改(包括工作目录和暂存区中的更改)保存到 stash stack 中,并将工作目录恢复到最近一次提交的状态。

查看已保存的工作

要查看 stash stack 中已保存的工作,可以使用:

git stash list

这会列出所有已保存的更改,每个更改都有一个唯一的标识符,例如 stash@{0}stash@{1} 等。

应用已保存的工作

当你完成其他任务,想要回到之前的工作时,可以使用以下命令应用已保存的更改:

git stash apply stash@{0}

这会将指定的更改应用到当前工作目录中。如果应用过程中出现冲突,Git 会提示你解决这些冲突。

删除已保存的工作

如果你已经不再需要某个已保存的更改,可以使用以下命令将其从 stash stack 中删除:

git stash drop stash@{0}

这会删除指定的更改。如果你想要同时应用并删除某个更改,可以使用:

git stash pop stash@{0}

这相当于先执行 git stash apply,再执行 git stash drop

高级用法

保存部分更改

有时你可能只想保存部分更改,而不是整个工作目录的更改。这时可以使用:

git stash push -p

这会进入交互模式,让你选择要保存的更改部分。

合并储藏的文件

如果你想将储藏的文件合并到当前分支,可以使用:

git stash branch <branch-name>

这会创建一个新的分支,并将储藏的更改应用到该分支中。

查看储藏的文件差异

要查看储藏的文件与当前工作目录的差异,可以使用:

git stash show stash@{0} --stat

这会显示储藏的文件变更摘要,包括新增、修改和删除的文件。

总结

git stash 是一个非常强大的工具,它让你能够灵活管理未提交的更改。通过将更改暂存起来,你可以更方便地切换任务、处理紧急问题或进行其他开发工作。


http://www.mrgr.cn/news/93952.html

相关文章:

  • 《 C++ 点滴漫谈: 三十 》高手写 C++,参数这样传才高效!你真的用对了吗?
  • 【git】删除已加入 .gitignore却仍被git追踪的文件
  • 1分钟看懂React的那些Hook‘s
  • java每日精进 3.11 【多租户】
  • 【性能测试】Jmeter详细操作-小白使用手册(2)
  • win10安装部署DB-gpt,坑多
  • 【Linux docker】关于docker启动出错的解决方法。
  • git规范提交之commitizen conventional-changelog-cli 安装
  • cu118 安装vllm 极简教程 踩坑笔记
  • [pytest] 配置
  • 【08】单片机编程核心技巧:变量命名规范
  • DeepSeek大语言模型下几个常用术语
  • 创建Electron35 + vue3 + electron-builder项目,有很过坑,记录过程
  • 【模拟CMOS集成电路设计】带隙基准(Bandgap)设计与仿真(基于运放的电流模BGR)
  • 从0开始的操作系统手搓教程43——实现一个简单的shell
  • 【SpringMVC】深入解析@ RequestMapping 注解的概念及使用和 MVC 介绍
  • QT多线程
  • 代码随想录刷题day41|(二叉树篇)二叉树的最大深度(递归)
  • 【前端】BOM DOM
  • 打造智能钉钉机器人:借助智谱GLM-4-Flash实现高效智能回复(文末附源码)