SPT术语库

储藏 Stash

你改到一半却要先切分支处理紧急问题,不想提交半成品,也不想丢掉当前改动。

Git约 10 分钟 · 从真实需求理解

1Stash 暂时保存的是什么?

GIT · TEMPORARY SHELF先收好半成品,再换任务

WIP → STASH → CLEAN WORKTREE → POP,临时保存不等于正式提交。

WIP CHANGES
MButton.vue
Mtokens.css
not committed
STASH ENTRYwaiting…git stash pushshelve WIP changes
WORKTREE CLEAN✓ cleanhotfix/loginwaiting for stash
POP RESTOREDgit stash popchanges stay shelvedchanges back · still uncommitted

Stash 会把当前还没有提交的工作区改动临时收起来,让工作树恢复干净。你可以先切分支处理别的事情,之后再把这组改动取回来继续做。

  • stash 保存的是当前工作区的改动,不是一个已经写进主线的 Commit。
  • 给 stash 写说明并查看编号,之后更容易找到正确的临时改动。
  • pop 或 apply 取回改动后,仍要检查冲突并决定何时正式提交。

2Stash 不等于 Commit、Discard 或备份

Commit 会把一组改动写进 Git 历史;Stash 只是临时保存工作区状态,等你需要时再取回。Discard 则是放弃改动,普通文件复制也不会留下 Git 可识别的 stash 条目。

  • Stash 适合短暂离开当前半成品,不适合代替长期提交或团队共享。
  • 恢复时可能产生冲突,要检查结果,不要把 pop 当成无条件成功。

命名 stash、定期清理过期条目,并在恢复后尽快提交有价值的改动。

3一次 Stash 由哪些部件组成?

CHANGESM Button.vueM tokens.css · not committed
ENTRY · stash@{0}2 files shelvedwip: save button
CLEANworking tree cleanhotfix/login can start
RESTOREgit stash popchanges back · still WIP

Stash 临时收起未提交改动,恢复后仍然需要检查、修改和正式提交。

把 Stash 拆开看,原始改动说明要保存什么,stash 条目承载临时快照,干净工作树给你切换任务的空间,恢复动作则把改动重新放回当前目录。

  • CHANGES 是尚未提交的文件修改。
  • ENTRY 是带编号和说明的临时保存条目。
  • CLEAN 是当前工作树没有待处理改动的中间状态。
  • RESTORE 是 apply 或 pop 后回到工作区的改动。

4怎样把 Stash 需求交给 Agent?

请把当前 Button.vue 和 tokens.css 的未提交改动保存为带说明的 stash,暂时切到 hotfix/login 处理紧急任务,确认工作树 clean 后再回到原分支执行 git stash pop。恢复后只检查改动,不要自动生成 Commit;请把 Stash、Commit、Discard、Worktree 和远程备份区分开,支持共享重播、Anatomy 键盘操作、暗色主题和 390px、320px 窄屏。

5不用背,看看你能不能判断

1 / 3

Stash 最主要保存的是什么?

请选择一个最符合题意的答案

选择答案后自动进入下一题

社区延伸

看别人真实遇到过什么

社区帖子还没有关联到这个词条。