Git藏了两次

时间:2013-08-05 16:54:40

标签: git git-stash

我不得不快速切换git分支,所以我运行git stash,但我不得不再次运行它,因为我的一个文件需要编辑。

所以我已经运行了git stash两次,我准备回去编辑我的文件了。我跑了git stash apply,但我不相信我藏起来的所有文件都是不受约束的。有什么我能做的吗?有什么办法检查?

当我跑git stash show时,我只看到我的两个git stashes中的最后一个。

无论如何都要显示所有git stashes

3 个答案:

答案 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}