首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >GitStash:高效管理多分支开发的秘密武器

GitStash:高效管理多分支开发的秘密武器

作者头像
CodeSuc
发布2025-11-03 18:21:06
发布2025-11-03 18:21:06
810
举报

前言

博主公司要求每个需求都要建立一个新的分支来开发,开发测试完毕后,再统一更新到 realse 主分支上发版上线。又由于博主比较牛马,好几个需求都在开发,这就导致了往往一个需求开发到一半,又要切换到另一个分支去解决另一个需求。那在第一个分支开发的需求还没开发完怎么办呢?直接 commit 提交到本地又会导致 push 时会存在很多垃圾提交记录。在这样的场景下,博主学会了使用 git stash命令

Git Stash 核心概念

Git Stash允许你能够在不提交当前分支代码的情况下切换分支

主要用于在切换分支时或进行其他 Git 操作时,避免未提交的的修改被干扰或丢失。Stash 允许你保存当前修改,并在需要时重新应用

下图展示了关于暂存区和工作目录和远程仓库之间的关系:

Git Stash 类似于一个栈(Stack),使用 LIFO(后进先出) 方式管理多个存储项。每次执行git stash,都会创建一个新的 stash 记录,并将其存入栈顶

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

  1. 添加到暂存区的修改(staged changes)
  2. Git 跟踪的但并未添加到暂存区的修改(unstaged changes)

但不会缓存以下文件:

  1. 在工作目录中新的文件(untracked files)
  2. 被忽略的文件(ignored files)

Git Stash 常用命令

  • Git stash
  • Git stash save
  • Git stash list
  • Git stash apply
  • Git stash changes
  • Git stash pop
  • Git stash drop
  • Git stash clear
  • Git stash branch
1. Git stash
代码语言:javascript
复制
git stash

该命令会保存未提交的代码,但不会保存未追踪(untracked)的文件或被忽略的文件

注:强烈建议使用 git stash save指令!


2. Git stash save
代码语言:javascript
复制
git stash save "提示信息"

该命令和 Git stash命令一样,但相比较 Git stash,我们手动指定暂存消息后,会更加清晰。后续我们 stash 多次时,也能很清晰找到自己希望还原的指定记录!


3. Git stash list
代码语言:javascript
复制
git stash list

显示所有存储的 stash 记录,每个记录会默认生成一个索引

eg:


4. Git stash apply
代码语言:javascript
复制
git stash apply

该命令将重新运用最近一次的暂存记录。用此命令后,对应的暂存记录并不会删除

如果有多个暂存记录,可以在命令后面跟上对应暂存记录的版本记录 ID 来应用特定的暂存记录

代码语言:javascript
复制
git stash apply <stash id>

eg:


5. Git stash show
代码语言:javascript
复制
git stash show

该命令将显示被隐藏的的文件和对它们所做的修改,可以帮助我们跟踪它们的状态

eg:

上方的输出说明,有 5 个文件被隐藏了,并且对他们进行了 15 次插入操作,2 次删除操作


6. Git stash pop
代码语言:javascript
复制
git stash pop

该命令将重新运用最近一次的暂存记录

同理,可以在后面跟上版本号运用指定的暂存记录

Git stash pop命令与Git stash apply很相似。这两个命令的主要区别是Git stash pop命令在应用后将从堆栈中删除此次版本


7. Git stash drop
代码语言:javascript
复制
git stash drop

该命令将从队列中删除最近的一次暂存记录。在使用此命令之前,应该小心谨慎,因为一旦执行就很难撤销

eg:


8. Git stash clear
代码语言:javascript
复制
git stash clear

该命令将一次性删除所有可用的暂存记录

eg:

上方的输出说明,所有的暂存记录都被删除了,Git stash list命令是空白的,因为暂存区中没有可用的暂存记录了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Git Stash 核心概念
  • Git Stash 常用命令
    • 1. Git stash
    • 2. Git stash save
    • 3. Git stash list
    • 4. Git stash apply
    • 5. Git stash show
    • 6. Git stash pop
    • 7. Git stash drop
    • 8. Git stash clear
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档