这是我的情况:
说我在分支b1上工作。我写了一个文件dir / f1。
然后我想在dir / f2中集成dir / f1的代码,我不再需要f1。
由于随机原因,我想保留f1
我从版本控制中删除了它,但它仍然在这里,未跟踪
如果我切换到分支b2,则f1有编译错误,因为它没有与b2保持同步
所以,我决定在切换之前在b1中给stash -u git,所以当我完成b2的工作时我可以恢复上下文。
它几乎按预期工作:工作目录被清理,所有东西(跟踪和未跟踪的文件,但因为我没有使用-a而被忽略的文件)被隐藏起来,我可以把它藏匿回来。
唯一的问题是某些文件已从工作目录中删除,但其他文件则没有。
消息是:
Not removing dir/f1
所以我的问题是:这种行为可能是什么原因? git如何决定在藏匿期间删除哪些文件以及哪些文件不被删除?
感谢
答案 0 :(得分:1)
这种行为似乎只能在git 1.7.7.x
和dir/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
,因此不会再出现这样的问题。