假设我在主分支之外的一个叫做“my_new_stuff”的分支上。 我觉得我可能已经藏了些东西在那里。 我担心如果我执行git stash pop
而我没有存储任何内容,它会将一堆不需要的东西推入我的工作文件夹。
我能查看是否存在已存储的更改而不将它们还原吗?
谢谢, Max
stash 存储快照的方式与 commit 相同。您可以使用以下命令查看 stash 的内容:
git stash list
您可以使用stash@{N}
标记引用这些快照,也可以使用显示的哈希值。您可以使用任何适用于存储快照的 Git 命令。例如:
git diff master stash@{0}
如果您将最新的储藏应用于master
分支,它将向其添加/删除什么内容。
虽然不完全是答案,但我根据Peter Lundgren的回答编写了一个小脚本,我觉得非常有用:当我切换分支时,它会告诉我是否已经存储了更改。
in .git/hooks/post-checkout
#!/bin/sh
branch=$(git rev-parse --abbrev-ref HEAD)
stashes=`git stash list | grep "WIP on $branch"`
if [ "$stashes" ]
then
echo "You have the following stashes for this branch:"
echo $stashes
fi
"$stashes"
会保留换行符。 - John Pavekgit rev-parse --abbrev-ref HEAD
作为获取分支名称更加便携和稳定的方式。 - Will Norvelle
git stash show
子命令,看起来在这种情况下会很有用。 - gcbenison