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

Max*_*ams 16 git git-stash

假设我在主人的分支中,称为"my_new_stuff".我有一种感觉,我可能会藏在那里的东西.我很担心,如果我这样做git stash pop而且我没有藏匿任何东西,它会把一堆不必要的垃圾塞进我的工作文件夹.

我可以看看是否有没有破坏他们的藏匿变化?

谢谢,最大

Pet*_*ren 29

存储以与提交相同的方式存储快照.你可以看到藏匿的内容

git stash list
Run Code Online (Sandbox Code Playgroud)

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

git diff master stash@{0}
Run Code Online (Sandbox Code Playgroud)

将显示master如果您在那里应用它,最新的存储将添加/删除到分支.


Max*_*ams 7

这不是一个答案,但是我使用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
Run Code Online (Sandbox Code Playgroud)

  • 我想使用引号添加(至少在 Windows 上),`"$stashes"` 保留换行符。 (2认同)