【问题记录】Linux下使用PyCharm恢复代码文件
【问题记录】Linux下使用PyCharm恢复代码文件
Contents
问题
一个改了两三天的程序,今天被我在使用WinSCP
进行复制操作时不小心覆盖掉了。我直接懵逼了,吓傻了...心想今晚能不能重新把他写出来...后来发现可以用PyCharm
进行回退,PyCharm万岁!!!
解决
PyCharm
当中的项目名右键菜单->Local History->Show History
记录了文件的历史版本,可以进行Revert
操作。选择一个正确无误的时间点,可以将整个项目都恢复到历史版本。
经验总结
WinSCP
在使用后台传输这一功能时,不会在覆盖文件前提示,需要进行设置
- 参考FTP将文件复制到同一FTP的另一个位置 。
准确的说,WinSCP
客户端采用的SFTP
协议是不支持直接复制的,只支持移动文件,所以他的复制操作并非是通过调用cp
命令完成的,而是通过本地副本或者是重新打开另一个会话的方式进行复制,而这个功能中并不会进行覆盖前的检查。经过测试,必须在复制时勾选“复制本地临时副本”选项,才会在覆盖文件前进行提示。
- 由上述经验可以得出结论:
- 最好不要用这种
SFTP
软件进行上传/下载/移动
之外的操作,因为很容易出现丢失文件的情况。 - 更不要用它自带的简易文本编辑器编辑代码(SFTP连接不稳定,如果断了,可能就会出现代码丢失)。最好通过
MobaXTerm
的X11 forward
功能或者远程桌面打开图形化的IDE界面来编写代码,这样IDE会自动保存代码,而且就算网络断了,服务器端的IDE进程并不会退出。 - 对于删除,复制等比较高风险的操作,尽量还是使用命令行进行。
- 复制操作: Linux默认的
cp
命令不会在覆盖文件之前进行提示,需要加上-i
参数
参考Linux 指令详解 alias 设置别名,为cp
设置别名,默认带上-i
参数。
mv``rm
操作也可以加上-i
参数。
更狠的是,直接用trash
作为rm
别名,彻底杜绝文件被删除。
- 删除操作: 参考分享|Trash-Cli:Linux 上的命令行回收站工具
- 不要使用rm进行删除操作,因为真的很危险,没有任何反悔的余地,删了就没了。
- 安装
trash-cli
命令行工具,可以实现类似windows下的回收站的功能,这样就不怕代码消失了。
- 养成使用git的习惯,或者对于关键的项目代码手动复制进行备份,代码文件一般也不会很占用空间!