git stash

三葉Leaves Author

此文简单总结 git stash 里最常见的几种命令,并推荐几篇很棒的教程。

git stash 能让你很方便的在想要切换分支的时候暂存目前的更改,而不必提交。这有助于优化你的 git history。一般多人协同的时候,这会很有用。如果你刚接触 git ,可以先用熟 commit 那些命令。

我在这里推荐几篇很棒的教程,尤其是第一篇里有一个简单易懂的案例能帮助你理解这个命令的作用。

暂存你的提交

这个命令会把你距离上次 commit 以来的更改暂存起来,这样,你的工作区又可以回到干净的状态(有时候真想给人生也上一个 git 检查点

1
git stash

这个可以用多次,每次都会创建一个“版本快照” 。为了防止你搞不清每次是干嘛的,你可以用这个命令加一个小说明

1
git stash save "description here"

一些其他的可选项:

  • git stash -u 或 git stash --include-untracked 存储未跟踪文件。
  • git stash -a 或 git stash --all 存储未跟踪文件和忽略的文件。

列出暂存区

1
git stash list

假设你存过两次,那这会获得类似这样的输出:

1
2
3
$ git stash list 
stash@{0}: On master: remove semi-colon from schema
stash@{1}: WIP on master: d7435644 Feat: configure graphql endpoint

应用暂存更改

不加标识符的话就应用最近的一次,也就是 stash@{0} 。你可以加标识符选择要用哪一次,我这里就用 stash@{1}

1
2
3
4
5
# 应用,并且从存储中移除
git stash pop stash@{1}

# 应用,但是不移除
git stash apply stash@{1}

清理暂存区

当你不再需要暂存区里的玩意时,可以这样清除,这会清除所有条目。

1
git stash clear

或者用这个,只清除特定的某次。

1
git stash drop <stash_id>

检查暂存差异

这个就是看看你上一次 commit 之后到使用 git stash 之间的这段时间都改了啥

1
git stash show <stash_id>
  • 标题: git stash
  • 作者: 三葉Leaves
  • 创建于 : 2025-04-17 00:00:00
  • 更新于 : 2025-04-25 00:07:45
  • 链接: https://blog.oksanye.com/fa123fae28e0/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论