我经常使用git stash并git stash pop保存和恢复工作树中的更改.昨天我的工作树上有一些变化,我已经藏起来了,然后我对工作树做了更多改动.我想回去查看昨天发生的变化,但git stash pop似乎删除了对相关提交的所有引用.
我知道如果我使用git stash那么.git/refs/stash包含用于创建存储的提交的引用.而.git/logs/refs/stash包含整个存储.但那些参考文献已经消失了git stash pop.我知道提交仍然在我的存储库中,但我不知道它是什么.
有没有一种简单的方法来恢复昨天的隐藏提交引用?
请注意,这对我来说并不重要,因为我有每日备份,可以回到昨天的工作树来获取我的更改.我问,因为必须有一个更简单的方法!
我刚刚升级了git.我是git版本1.8.3.
今天早上我试图在堆栈中取消一个更改.
我跑了git stash pop stash@{1},得到了这个错误.
__PRE__
我尝试了大约20多种变体以及使用apply而不是pop没有成功.改变了什么?其他人遇到这个吗?
我想从stash中检出一个文件:
git checkout stash@{0} -- some/file
Run Code Online (Sandbox Code Playgroud)
这失败了 fatal: invalid reference: stash@0
看起来花括号被淘汰了,但我不确定罪魁祸首.
存储修订就在那里.git stash list回报
stash@{0}: WIP on X
stash@{1}: WIP on Y
Run Code Online (Sandbox Code Playgroud)
我在zsh上使用git 1.9.1.
有没有办法防止这种大括号消除?