所以这就是发生的事情:我在一个分支'A'上并在那个分支上做了一个 Git stash。然后我切换到另一个分支'B'。我导航回分支“A”,但没有执行 Git stash pop。我切换到主分支,然后回到分支“A”。我现在正在尝试执行 git stash pop,但似乎无法恢复我的更改。我需要恢复该代码,但是每当我执行 git stash pop 时,我的文件更改都不会列出。我没有提交任何代码。
有没有办法恢复我所做的更改?非常感谢在这方面的任何帮助。
我们也面临同样的问题。因此,以下是我们如何恢复丢失的更改:
回到分支 B。
git结帐B
使用git reflog
选项来管理 reflog 信息。
git reflog --all
输出:
f332d5c refs/stash@{0}:B 上的 WIP:aa1d0c1 xyz 提交消息
现在,使用切换到分支 Agit checkout A
最后,恢复丢失的更改。
git stash apply f332d5c
Stashes 应该可以通过以下方式查看
git stash list
或者
gitk --all
此外,git stash
不会存储未跟踪的文件。如果您这样做并随后执行git checkout --force
了另一个分支以用另一个分支中的跟踪文件覆盖未跟踪的文件,那么您已经丢失了该内容。推荐的存储方式是
git stash -u
这将防止这种类型的损失。
类似的事情发生在我身上。简而言之,检查以确保您没有意外地将新文件推送到另一个分支。
这是发生在我身上的事情:我把我的东西藏起来了,从“开发”切换到“主”以快速进行修补程序。当我将修补程序推送到 master 时,我没有注意到我还将用于 dev 的新文件添加到 master 分支——我也认为 stash 包含这些文件。