Git stash:如何查看分支中是否存在隐藏的更改

时间:2013-06-17 16:55:23

标签: git git-stash

假设我在主人的分支中,称为“my_new_stuff”。我有一种感觉,我可能会藏在那里的东西。我担心,如果我git stash pop并且我没有藏匿任何东西,那么它会把一堆不需要的垃圾塞进我的工作文件夹。

我可以看看是否存在藏匿的变化而不打开它们吗?

谢谢,最大

2 个答案:

答案 0 :(得分:28)

stash以与提交相同的方式存储快照。您可以使用

查看存储的内容
git stash list

您可以使用stash@{N}表示法引用这些快照,或使用显示的哈希值。您可以使用任何适用于存储提交的Git命令。例如

git diff master stash@{0}
如果您在master分支中应用,

将显示最新存储将添加/删除的内容。

答案 1 :(得分:6)

不是这样的答案,而是我使用上面的Peter Lundgren的答案制作的一个小脚本,我发现它非常有用:当我切换分支时,它告诉我是否有隐藏的更改。

in .git/hooks/post-checkout

#!/bin/sh
branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
stashes=`git stash list | grep "WIP on $branch"`
if [ "$stashes" ]
then
  echo "You have the following stashes for this branch:"
  echo $stashes
fi