我在本地工作树中使用git checkout意外地丢弃了文件的更改。这些文件此时没有被暂存。有可能“撤销”此操作吗?
我在本地工作树中使用git checkout意外地丢弃了文件的更改。这些文件此时没有被暂存。有可能“撤销”此操作吗?
git checkout --
),我希望它可以通过 reflog
操作来撤销该修改。这个期望是错误的吗? - Ciprian Tomoiagăgit checkout folders/subfolders/file
,但不小心在输入到 folder
后按下了回车,结果失去了所有的工作进度。我的键盘上 / 和回车键离得只有1厘米,而我经常在不同的计算机之间切换,它们的键盘布局也不同,所以我的手指需要花10-15分钟适应新位置。很难相信在2018年,Git竟然会删除文件,尽管Git手册中明确表示Git会尽最大努力避免数据丢失。 - gman如果您正在使用Sublime Text等编辑器,且仍有相关文件打开,您可以按下ctrl+z,它将恢复到git checkout之前的状态。
很遗憾,您的更改已经丢失。您的私有修改被简单地覆盖了。除非您在进行检出之前执行了 git stash
...
从积极方面来看:现在您可以更好地实现事情了 ;)
在使用OS X开发?使用Xcode?那你很可能会有好运气!
正如qungu的评论所述,OS X会自动保存文件的版本历史记录,即使你没有使用时间机器。
所以,如果你不小心用git checkout .
清除了未提交的本地更改,这里是你可以很可能恢复所有工作的方法。
如果有人在XCode中丢失了一些工作,有一种方法可以获取AutoSave历史记录。XCode本身没有菜单项来查看AutoSave历史记录,但它确实存储了它。如果你在TextEdit中打开相关文件,你可以通过“文件”>“还原”来查看AutoSave历史记录。
这真是太棒了,昨天为我恢复了大约一天的工作。
Model.xcdatamodeld
。 - Siempay在你的集成开发环境中检查本地历史记录。
git checkout .
而不是git add .
,导致我所有的文件更改都丢失了。command + z
,我恢复了这些更改,并为自己节省了大量的工作。在这种情况下,一种有效的救世主是Time Machine(OS X)或类似的基于时间的备份系统。它曾经帮助过我几次,因为我可以回到过去并恢复那个特定的文件。
从技术上讲,是可以的。但只有在某些情况下才能实现。例如,如果您打开了代码页面并点击了git checkout,然后意识到您不小心检出了错误的页面或其他内容。请转到该页面并单击撤消(对我而言,是command + z),它将返回到您在执行git checkout之前所在的确切位置。
如果您的页面已关闭,然后再执行git checkout,则无法使用此方法。它只适用于实际代码页面已打开的情况。