khe*_*lll 6 git git-stash data-loss
我有一个文件,比如file.txt我已经把git mv file.txt写到了file1.txt,然后我创建了一个名为file.txt的新文件并对其进行了处理.不幸的是我没有将该文件添加到git中.无论如何问题是我做了git stash,然后是git stash apply,但是新的file.txt消失了......无论如何要把它取回来?
这里的问题主要是误解了什么git stash save.它仅保存对跟踪文件的更改.未跟踪的文件不会保存git stash.将file.txt移动到file1.txt时,新的file.txt是未跟踪的文件,不会保存git stash.这不是一个错误,它只是git stash表现的方式.可能是文档git stash应该更清楚这一点.
作为git stash save状态的文档,它将git reset --hard在保存更改后执行.它git reset --hard覆盖了新的file.txt.有人可能会争辩说,git reset --hard如果未覆盖的文件被覆盖,应该生成警告,但我仍然不会将此称为错误.它正在做它应该做的事情.
在这里要理解的重要事情 - 以及能够为您节省很多麻烦的是 - git stash save 不能保存未跟踪的文件(并且它可能不应该保存).