我不得不快速切换git分支,所以我运行git stash
,但我不得不再次运行它,因为我的一个文件需要编辑。
所以我已经运行了git stash
两次,我准备回去编辑我的文件了。我跑了git stash apply
,但我不相信我藏起来的所有文件都是不受约束的。有什么我能做的吗?有什么办法检查?
当我跑git stash show
时,我只看到我的两个git stashes中的最后一个。
无论如何都要显示所有git stashes
?
答案 0 :(得分:109)
您可以使用
获取所有藏匿的列表git stash list
会显示类似
的内容stash@{0}: WIP on dev: 1f6f8bb Commit message A
stash@{1}: WIP on master: 50cf63b Commit message B
如果你做了两个藏匿处,那么只需拨打git stash pop
两次。与git stash apply
相对,pop
适用,删除最新存储。
您还可以引用特定的存储,例如
git stash show stash@{1}
或
git stash apply stash@{1}
答案 1 :(得分:0)
我遇到了这种情况,我做了两次藏匿, git stash pop 只是没有藏起来的最后一个藏匿处。所以我做了
git stash list
git stash pop stash@{1}
这掩盖了我的第一个藏身处,我可以看到我的所有更改!
答案 2 :(得分:0)
您在帖子中问了几个不同的问题,其他受访者对其中一些问题给出了很好的答案。似乎最重要但尚未得到答复的是:
>>我不确信我保存的所有文件都没有保存。有什么我可以做的吗?可以检查吗?
我认为您想要做的是将存储与本地working tree进行比较。您可以将-p开关放在stash命令上,这样很好:
git stash show -p
如果您要寻找一个特定的人,只需使用其git stash name或隐藏列表中的ID:
git stash show -p stash@{3}
如果您真的有兴趣提高自己的git技能,可以随时进行比较。要查看存储区中的内容和检入master分支中的HEAD之间的差异,可以使用以下差异:
git diff stash@ master
另一条整洁的命令--stat:
用于显示隐藏历史记录中可能有用的元素更改git stash list --stat
但是我认为简单的答案是正确的答案。只需使用-p开关,您可能会发现stash you shelved是否已弹出。
git stash show -p stash@{3}