谈谈对git stash的理解?

1. 使用场景

有时你想切换分支,但当前这个分支还没完成,你不想把半成品提交,就可以用stash,可以在不提交当前分支的情况下切换分支

2. stash会缓存哪些?

默认情况下, git stash 会缓存下列状态的文件:

  • 添加到暂存区的修改(staged changes)

    git add过了,还没有commit

  • Git跟踪的但并未添加到暂存区的修改(unstaged changes)

在工作区修改了文件,但还没有用git add加入到暂存区 但以下状态的文件不会缓存:

  • 在工作目录中新的文件(untracked files)

    新文件 git add 后,就变为了tracked

  • 被忽略的文件(ignored files)

3. 如何使用?

  • git stash

    保存当前工作进度,会把暂存区和工作区的改动保存起来

    在给出的输出中,工作是用git stash命令保存的。我们可以检查版本库的状态。

    正如你所看到的,我的工作只是藏在当前位置。现在,目录已经清理完毕。

  • git stash save ""

    保存stash并添加描述信息。类似于 git commit -m "描述信息"

  • git stash list

    显示所有 stash 的列表

  • git stash pop

    从栈中读取最近一次保存的内容,也就是栈顶的stash会恢复到工作区。该命令会将内容从堆栈中删除

    可以通过git stash pop + stash@{1}执行恢复哪个stash恢复到当前目录

  • git stash apply

    将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除 同样可以通过git stash apply + stash@{1/2/3...}执行恢复哪个stash恢复到当前目录

  • git stash show

    显示被藏匿的文件和对它们所做的修改

  • git stash drop

    从堆栈中移除某个指定的stash

  • git stash clear

    一次性删除所有可用的储藏库。

4.总结

主要命令有:

  • git stash 和 git stash save 保存
  • git stash list 和 git stash show 显示(一个是以列表显示所有的,一个是显示单个stash的修改)
  • git stash pop 和 git stash apply 应用到工作区(前者会删后者不会)
  • git stash drop 和 git stash clear 移除(前者删除指定的stash,后者删除所有的)

参考文献

Git -- Stash命令|极客教程

面试官:说说你对git stash 的理解?应用场景? | web前端面试 - 面试官系列

相关推荐
郑州光合科技余经理18 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我1234518 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s1 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人2 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人2 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅2 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人2 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr2 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林2 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器
烛之武2 天前
Git教程笔记
git·gitee