git - `git reset stash` 的语义是什么?

标签 git

今天不小心输入了命令git reset stash它对我最近的历史做了一些非常奇怪的事情。它看起来像最小的,它删除了最近的提交,并添加了另外两个提交,一个用于索引,另一个用于存储本身。
我环顾四周 man git-reset但没有发现那里描述的这种行为。
这个命令的预期语义是什么,它是否记录在某处?

最佳答案

stash被 git 识别为对包含最新存储的提交的引用 - 尝试 git rev-parse stashcat .git/refs/stash ,这将打印提交 SHA。
所以git reset stash与任何 git reset <branch/tag/commit> 的效果相同:它重置您当前的分支以指向您指示的提交,并将原始和新提交之间的任何差异保留为待处理的更改。 (并且 stash 由两次提交组成,正如您所说,它们包含索引和 workdir 更改。)

关于git - `git reset stash` 的语义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62647977/

相关文章:

linux - 在 AWS Code Commit 中使用用户名和密码进行 Git pull/克隆

git - 如何在 git index 中取消暂存重命名的文件?

ruby-on-rails - master 启动失败,查看 stderr 日志了解详情

独立开发者的 Git : merge vs rebase

更新子模块时 Hudson 上的 Git 致命异常

git - 无法推送到 github : everything up-to-date

git - 如何在不提交的情况下 merge 到分支?

Git - 如何撤消放弃本地更改的未暂存文件的 checkout

git - Git 可以用来更新客户端计算机上的软件吗?

git - 使用 Git (Dreamhost) 部署站点不起作用