簡體   English   中英

從 SourceTree 或 Git 恢復已刪除的文件

[英]Restore Deleted Files from SourceTree or Git

我最近開始使用 SourceTree 來處理 Bitbucket。 我正在處理一個項目,然后我決定需要將它移動到不同的文件夾(出於各種原因)。 所以,我剪切了我在 repo 中處理的文件,然后單擊 SourceTree 中的刪除按鈕,沒有意識到這樣做實際上會刪除文件。 我剪切了文件以防萬一,但不記得粘貼這些文件需要原始文件存在。

現在,我只有從回購該SourceTree沒有刪除留下的文件。這些都是在文件objects目錄,我沒有infopack其內部的文件夾中objects的目錄。

有什么辦法可以恢復文件嗎? 我已經看過這個問題這個問題,但是我是 git 新手,無法弄清楚如何實際執行這些操作。

請幫忙! 如何恢復 repo 中的文件?

如果提交了這些文件,您只需執行git checkout HEAD -f
如果文件未提交,則它們不會存儲為對象。

這是 Sourcetree 中對我有用的解決方法:

  1. 標識刪除文件的提交。

  2. 轉到工具-> 選項-> 自定義操作。

  3. 創建一個新的自定義操作,如下所示:自定義操作屏幕

    結帳 $SHA~1 -- $FILE

  4. 轉到刪除文件的提交(在步驟 1 中找到),rick 單擊文件並選擇自定義操作-> 您剛剛定義的自定義操作:恢復文件

  5. 不幸的是,Sourcetree 顯示錯誤並且無法完成工作。 Sourcetree GUI 中的錯誤

  6. 我始終啟用“顯示完整輸出”選項,因此我必須手動關閉窗口,這在您需要創建合並請求時很有用(鏈接將在那里,您只需復制它,沒有此窗口會自動關閉你會錯過復制它的更改)。 如果您看不到那個窗口,那可能是因為您禁用了該功能(這是默認設置)

  7. 從窗口復制命令。

  8. 在 Sourcetree 上打開一個 git 終端(從 sourcetree 右上角) Git 終端啟動器

  9. 粘貼命令(shift + insert)並按回車鍵。 Git 控制台

  10. 瞧! 您的文件已恢復。

在最后一張圖片中,您可以看到(失敗)嘗試從文件被刪除的提交中恢復,但實際上您需要從前一次提交中恢復,這就是前兩次嘗試失敗而后一次成功的原因(這就是~1在 SHA 的末尾)。

希望它有幫助,快樂編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM