【git】 贮藏 stash

news/2025/3/13 17:30:38/

贮藏是我在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: ...'
    git push
    
  5. 删除储藏项git stash drop stash@{0}

Git Stash相关

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

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

基本概念

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

常见用法

保存当前工作

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

git stash

在使用 git stash 贮藏本地修改文件时,可以通过添加 -m 参数来添加文字说明。这有助于你更好地管理贮藏的更改,尤其是在有多个贮藏时,可以方便你识别每个贮藏的内容。

git stash push -m "说明文字"

这会将当前未提交的更改(包括工作目录和暂存区中的更改)保存到 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.ppmy.cn/news/1578840.html

相关文章

机器学习(吴恩达)

一, 机器学习 机器学习定义: 计算机能够在没有明确的编程情况下学习 特征: 特征是描述样本的属性或变量&#xff0c;是模型用来学习和预测的基础。如: 房屋面积, 地理位置 标签: 监督学习中需要预测的目标变量&#xff0c;是模型的输出目标。如: 房屋价格 样本: 如: {面积100㎡…

OpenCV开发笔记(八十三):图像remap实现哈哈镜效果

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/146213444 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

Windows CMD 命令大全(综合开发整理版)

CMD Windows CMD 命令大全(综合整理版)基础操作与文件管理类系统维护与配置类网络与连接类开发者常用命令CMD 黑窗口使用技巧1. **效率操作**2. **高级功能**3. **开发者高效技巧**注意事项**微软官方文档****其他实用资源****如何高效使用官方文档**Windows CMD 命令大全(综…

云效、流水线、Gradle缓存问题、build.gradle配置snapshot

云效 大部分研发者们或许都听说过阿里云云效&#xff0c;甚至有不少使用经验&#xff1b;但是几乎很少有人会关注过云效的&#xff08;子&#xff09;域名&#xff1a; 如上图&#xff0c;云效的定位&#xff08;愿景&#xff09;就是为研发者们提供一站式的团队协作、效能提…

vscode自定义背景色

故事背景,vscode默认的是黑色&#xff0c;windows默认的是白色&#xff0c;白色看久了&#xff0c;看黑色看不清楚。以前写C灰色习惯了。需要修改背景色。 自定义背景色 打开 VSCode。 按下 Ctrl , 打开设置。 在搜索栏中输入 workbench.colorCustomizations。 点击 “编辑 i…

数字IC/FPGA校招笔试题解析(一)

数字IC/FPGA校招笔试题解析&#xff08;一&#xff09; 题目1 问题&#xff1a;数字电路设计中&#xff0c;下列哪种手段无法消除竞争冒险现象&#xff1f; 选项&#xff1a; a. 加滤波电容&#xff0c;消除毛刺 b. 增加冗余项消除逻辑冒险 c. 增加选通信号&#xff0c;避开毛…

纯前端全文检索的两种实现方案:ElasticLunr.js 和 libsearch

纯前端全文检索的两种实现方案&#xff1a;ElasticLunr.js 和 libsearch 在前端开发中&#xff0c;实现全文检索功能可以显著提升用户体验&#xff0c;尤其是在处理大量文本数据时。本文将介绍两种流行的纯前端全文检索方案&#xff1a;ElasticLunr.js 和 libsearch。这两种方…

【反无人机目标检测数据集】MIDGARD:关于基于机器学习的微型无人机视觉相对定位的训练数据集

On training datasets for machine learning-based visual relative localization of micro-scale UAVs 关于基于机器学习的微型无人机视觉相对定位的训练数据集 0.论文摘要 摘要——通过利用我们相对微型无人机定位传感器UVDAR&#xff0c;我们生成了一个自动标注的数据集MID…