1. 程式人生 > 實用技巧 >【問題記錄】Linux下使用PyCharm恢復程式碼檔案

【問題記錄】Linux下使用PyCharm恢復程式碼檔案

【問題記錄】Linux下使用PyCharm恢復程式碼檔案

Contents

問題

一個改了兩三天的程式,今天被我在使用WinSCP進行復制操作時不小心覆蓋掉了。我直接懵逼了,嚇傻了...心想今晚能不能重新把他寫出來...後來發現可以用PyCharm進行回退,PyCharm萬歲!!!

解決

PyCharm當中的專案名右鍵選單->Local History->Show History記錄了檔案的歷史版本,可以進行Revert操作。選擇一個正確無誤的時間點,可以將整個專案都恢復到歷史版本。

經驗總結

  1. WinSCP在使用後臺傳輸這一功能時,不會在覆蓋檔案前提示,需要進行設定
  2. 參考FTP將檔案複製到同一FTP的另一個位置
    準確的說,WinSCP客戶端採用的SFTP協議是不支援直接複製的,只支援移動檔案,所以他的複製操作並非是通過呼叫cp命令完成的,而是通過本地副本或者是重新開啟另一個會話的方式進行復制,而這個功能中並不會進行覆蓋前的檢查。經過測試,必須在複製時勾選“複製本地臨時副本”選項,才會在覆蓋檔案前進行提示。
  3. 由上述經驗可以得出結論:
  • 最好不要用這種SFTP軟體進行上傳/下載/移動之外的操作,因為很容易出現丟失檔案的情況。
  • 更不要用它自帶的簡易文字編輯器編輯程式碼(SFTP連線不穩定,如果斷了,可能就會出現程式碼丟失)。最好通過MobaXTermX11 forward
    功能或者遠端桌面開啟圖形化的IDE介面來編寫程式碼,這樣IDE會自動儲存程式碼,而且就算網路斷了,伺服器端的IDE程序並不會退出。
  • 對於刪除,複製等比較高風險的操作,儘量還是使用命令列進行。
  1. 複製操作: Linux預設的cp命令不會在覆蓋檔案之前進行提示,需要加上-i引數
    參考Linux 指令詳解 alias 設定別名,為cp設定別名,預設帶上-i引數。
  2. 刪除操作: 參考分享|Trash-Cli:Linux 上的命令列回收站工具
    • 不要使用rm進行刪除操作,因為真的很危險,沒有任何反悔的餘地,刪了就沒了。
    • 安裝trash-cli命令列工具,可以實現類似windows下的回收站的功能,這樣就不怕程式碼消失了。