我经常使用git stash
和git stash pop
来保存和恢复我的工作树中的更改。昨天,我在我的工作树中有一些已经被存储和弹出的更改,然后我又对我的工作树进行了更多的更改。我想回去查看昨天存储的更改,但git stash pop
似乎删除了所有相关提交的引用。
我知道,如果我使用git stash
,那么.git/refs/stash包含用于创建存储的提交的引用。而.git/logs/refs/stash包含整个存储。但是,在git stash pop
之后,这些引用都没有了。我知道提交仍然在我的仓库中,但是我不知道它是什么。
是否有一种简单的方法来恢复昨天的存储提交引用?
git stash pop
时丢失你的储藏,你可以使用git stash apply
代替。它做的与pop
相同,但不会删除已应用储藏的引用。 - Kevingit stash
。如果值得保存,那么就值得进行完整的提交(可能在单独的临时分支上)。使用git commit
,你的“stash”将更容易跟踪。首先,你可以包括提交信息。但更重要的是,即使你重置/删除了分支,你的更改也会在本地 reflog 中访问。详情请见 even if you reset/delete the branch。 - Brent Bradburngit stash push -m“我的存储消息…”
为你的git存储条目添加消息,以更好地组织它们。 - James Hoopergit stash clear
命令来清除杂乱的存储区。这个帖子帮助我恢复了存储区的提交。 - Aman