我放错了一些工作,但我知道它在我的 git-stash 堆栈中的某个地方

I misplaced some work, but I know its somewhere in my git-stash stack

当另一个更重要的问题出现时,我正在修复一个功能。我没有像往常一样创建新分支、提交并移回主分支,而是使用 git stash。我忘记了我从未完成修复,只是把它放在我的藏匿处。我经常使用 git stash 在使用不同项目配置设置的分支之间移动更改,以针对多个构建环境进行测试,所以我总是隐藏东西。一段时间后,我意识到在 master 分支中找不到修复程序,我记得我刚才把它藏起来了。我知道我仍然必须拥有它,因为我总是使用 git stash apply 而不是 git stash pop,但我不知道这些更改在堆栈中有多远。但是,我确实知道此修复程序的所有更改都是在单个源文件中进行的,如果有帮助的话。

是否有 "best" 方法来尝试找到这个丢失的修复程序?我可以 运行 git stash pop,看看它是否恢复修复,git reset --hard 如果没有,git stash drop 如果有合并冲突,然后重复直到找到它,但我希望有一些破坏性较小的东西。 Git 似乎总是有至少 10 种不同的方法可以完成您在管理代码方面可能想做的任何事情,所以我想在开始拆除我的存储堆栈之前征求第二意见。

第一次使用

git stash list

了解您藏匿的所有物品的概况(并获取它们的哈希值)。

要查看他们引入的更改,请使用

git stash show <stash_hash>

要查看这些更改的完整差异,请使用

git stash show -p <stash_hash>

一旦您知道要申请的项目,请使用:

git stash apply <stash_hash>