git stash后未跟踪的文件丢失,正在分支上工作并进行stash pop

8
请理解以下情景:
1. 一天前创建了一个新的分支并将我的工作推送到那里。
2. 整天使用sublime,修改现有文件,创建一些新文件。
3. 没有添加或提交,但是存储了,切换到另一个分支,在那里提交并弹出存储

哇!!新文件(未跟踪的文件)丢失了。

这是存储的正常行为还是我可能会恢复这些数据。

任何帮助都将不胜感激。 谢谢 :)

3个回答

6

5

你可以使用-u参数将未跟踪的文件包含在暂存中。

只需要注意,当仅使用git stash show <stash>时,未跟踪的文件不会显示出来。因此,你需要像暂存时一样包含-u参数才能进行查看:git stash show -u <stash>


当使用git stash show时,未跟踪的文件不会显示出来。如果我早几分钟看到这个问题就好了...可能会避免我小小的惊恐发作。 - Harshith Thota
未跟踪的存储文件如果添加了 -u,则会显示出来,这是您在第一次隐藏它们时必须指定的。因此,使用 git stash show -u <stash> 进行查看。快速查看 git help stash,可以看到 -ushow 的第一个选项。@kerner1000 @Harshith Thota - Life5ign

2
在第三步中,你说“...切换到另一个分支,进行了提交并弹出了贮藏”。我能想到的唯一一件事是,在你切换到另一个分支后,你在那里提交了新文件,然后又切换回了之前的分支(也就是你在第2步时所在的分支),弹出了贮藏,发现新文件不见了。在这种情况下,新文件已经在你在第3步中所切换到的新分支中进行了提交,所以你可以在那里找到它们。

我也遇到了同样的问题!然后我执行了 git merge branch3 命令来获取在 git popgit stash apply 后未跟踪的文件。 - Nwawel A Iroume

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接