首页 > 其他分享 >git stash用法

git stash用法

时间:2024-12-17 22:57:58浏览次数:9  
标签:git 保存 pop 用法 修改 stash 条目

在 Git 中,git stash 是一个用于临时保存当前工作目录和暂存区的修改(包括未跟踪的文件或更改),以便清理工作目录,同时不丢失这些修改的命令。

主要用途

当你正在开发一个功能,但需要切换到其他分支或进行一些临时调整(比如修复紧急问题)时,你可以使用 git stash 将当前未完成的修改保存起来,而无需提交。


命令详解

  1. git stash

    • 将当前工作目录和暂存区的所有修改保存到一个堆栈(stash stack)中,同时恢复干净的工作目录。
  2. git stash list

    • 查看所有已存储的 stash 列表。
    • 每个 stash 条目有唯一标识(如 stash@{0})。
  3. git stash apply

    • 从 stash 中恢复最近保存的修改,但不会删除 stash 条目。
    • 如果想应用特定的 stash,可以指定,例如:git stash apply stash@{1}
  4. git stash pop

    • 恢复最近的 stash 修改并删除该条目。
    • 适合用完后不需要保存的情况。
  5. git stash drop

    • 删除特定的 stash 条目。
    • 例如:git stash drop stash@{0}
  6. git stash clear

    • 清空 stash 堆栈,删除所有保存的条目。
  7. git stash save "message"

    • 带描述信息的保存,便于理解内容。
  8. git stash --include-untracked

    • 保存未跟踪文件的更改(默认不包含)。
    • 如果还想包括被忽略的文件,可以使用 --all

使用场景举例

场景 1:切换分支时保留修改

git stash       # 保存当前工作
git checkout other-branch
# 完成后返回工作分支
git checkout your-branch
git stash pop   # 恢复修改

场景 2:避免提交零散的改动

git stash       # 保存临时改动
# 编写其他代码并提交
git stash pop   # 恢复临时改动

场景 3:清理工作目录

git stash --include-untracked
# 工作目录变得干净,可以执行其他操作
git stash pop

注意事项

  • 使用 git stash 前,最好确保没有未保存的重要更改。
  • 如果存在冲突,git stash apply 或 git stash pop 恢复时需要手动解决。

标签:git,保存,pop,用法,修改,stash,条目
From: https://www.cnblogs.com/chentiao/p/18613609

相关文章

  • # easygui中所有函数用法示例
    #easygui中所有函数用法示例'''注意事项文件对话框:filesavebox和fileopenbox示例中的filetypes参数可以指定文件类型过滤器,例如["*.txt"]只显示文本文件。运行这个脚本,你将看到easygui提供的各种对话框,并可以测试它们的功能。'''importeasygui#1、msgbox:显......
  • 如何将本地代码上传到GitLab
    一、在Gitlab上新建仓库1、创建新的群组,新建项目,点击创建空白项目。    2、创建完成后,可以项目中查看到你所创建的新项目。3、最好把README.md文件删除,不然后续push代码会冲突。二、在本地创建项目,并关联gitlab上传1、打开本地需要上传的代码所在的文件夹,右键选......
  • python所有内置函数的简介和用法示例
    以下是python所有内置函数的简介和用法示例:序号函数名简介用法示例1__build_class__用于构建类的内部函数,通常不直接使用-(高级用法,不常直接调用)2__import__动态导入模块module=__import__('math')然后可以使用module.sqrt(9)3abs返回数字的绝对值p......
  • 欢迎各位到我的GitHub主页
    这是一个学术风格的个人blog。最近我把大多的精力都投在了这里。主题hexo-theme-scholar-future是自己业余编的,稍微有点粗糙。但总算还过得去,有空会不断完善。今后主要精力将放在博文的内容和原创上,以及一些优秀博文的转载和备份上。同时欢迎大家大胆followCSDN为大家提供了一......
  • git从入门到实践
    文章目录1.Git基础概念什么是Git?Git的核心概念2.安装与配置安装Git配置Git3.创建与管理本地仓库初始化一个Git仓库添加文件并提交查看状态与日志4.分支与合并创建与切换分支合并分支删除分支5.远程仓库关联远程仓库推送与拉取6.冲突处理7.标签管理创......
  • 如何解决Git合并冲突?
    讲个故事先:一个晴朗的日子,Alex把远程版本库的修改拉到他的本地版本库。他修改了名为abc.txt的文件,将其暂存(staged),提交(committed),最后推送(pushed)回远程版本库。同时,Tina不知道Alex对abc.txt文件的修改,在该文件的相同区域做了一些修改,并尝试将其推送到远程仓库。Git是一......
  • Gitee三方登录_Python (超详细)
    第三方登录是一种常见的身份验证机制,允许用户使用他们在其他平台(如社交媒体、电子邮件服务或开发平台)的账号来登录你的应用或网站,而不需要创建新的用户名和密码。这种方式不仅简化了用户的登录过程,还提高了用户体验和安全性。第三方登录的主要特点简化注册和登录:用户无需创建新......
  • github克隆代码报错
    报错一:gitclonehttps://github.com/PanJiaChen/vue-admin-template.git报错Cloninginto'vue-admin-template'...fatal:unabletoaccess'https://github.com/PanJiaChen/vue-admin-template.git/':Failedtoconnecttogithub.comport443after......
  • 鸿蒙Next数据懒加载LazyForEach用法总结
    在鸿蒙Next开发中,LazyForEach提供了高效的数据懒加载机制,适用于处理大量数据的列表展示等场景,可有效提升性能和内存管理。以下是其详细用法总结。一、使用限制容器组件要求:必须在特定容器组件(List、Grid、Swiper、WaterFlow)内使用,且这些组件支持配置cachedCount属性实现按需加......
  • QMap 下标用法的一个副作用
       最近使用QMap存储数据,初始代码如下:   QMap<QString,QString>map;   map["one"]="1";   map["two"]="2";   map["three"]="3";   之后,需要根据key查找某个map的值,并删除。此时一般会采用遍历QMap,然后比对key是否相同。但当时忽想到直接用......