“git stash save -u”没有删除某些目录

时间:2012-07-20 12:41:41

标签: git git-stash

这是我的情况:
说我在分支b1上工作。我写了一个文件dir / f1。
然后我想在dir / f2中集成dir / f1的代码,我不再需要f1。
由于随机原因,我想保留f1 我从版本控制中删除了它,但它仍然在这里,未跟踪 如果我切换到分支b2,则f1有编译错误,因为它没有与b2保持同步 所以,我决定在切换之前在b1中给stash -u git,所以当我完成b2的工作时我可以恢复上下文。
它几乎按预期工作:工作目录被清理,所有东西(跟踪和未跟踪的文件,但因为我没有使用-a而被忽略的文件)被隐藏起来,我可以把它藏匿回来。 唯一的问题是某些文件已从工作目录中删除,但其他文件则没有。 消息是:

Not removing dir/f1

所以我的问题是:这种行为可能是什么原因? git如何决定在藏匿期间删除哪些文件以及哪些文件不被删除?

感谢

1 个答案:

答案 0 :(得分:1)

这种行为似乎只能在git 1.7.7.xdir/f1是目录的情况下实现。

git stash -u使用git clean从工作目录中删除文件。根据{{​​3}},唯一的情况git clean可以使用Not removing dir/f1消息进行响应,即dir/f1是目录时。您确定dir/f1是文件吗?

git 1.7.8开始(具体来说,git's source code},git stash -u-d选项传递给git clean,因此不会再出现这样的问题。