[英]Restore Deleted Files from SourceTree or Git
我最近開始使用 SourceTree 來處理 Bitbucket。 我正在處理一個項目,然后我決定需要將它移動到不同的文件夾(出於各種原因)。 所以,我剪切了我在 repo 中處理的文件,然后單擊 SourceTree 中的刪除按鈕,沒有意識到這樣做實際上會刪除文件。 我剪切了文件以防萬一,但不記得粘貼這些文件需要原始文件存在。
現在,我只有從回購該SourceTree沒有刪除留下的文件。這些都是在文件objects
目錄,我沒有info
或pack
其內部的文件夾中objects
的目錄。
有什么辦法可以恢復文件嗎? 我已經看過這個問題和這個問題,但是我是 git 新手,無法弄清楚如何實際執行這些操作。
請幫忙! 如何恢復 repo 中的文件?
如果提交了這些文件,您只需執行git checkout HEAD -f
。
如果文件未提交,則它們不會存儲為對象。
這是 Sourcetree 中對我有用的解決方法:
標識刪除文件的提交。
轉到工具-> 選項-> 自定義操作。
創建一個新的自定義操作,如下所示:自定義操作屏幕
結帳 $SHA~1 -- $FILE
轉到刪除文件的提交(在步驟 1 中找到),rick 單擊文件並選擇自定義操作-> 您剛剛定義的自定義操作:恢復文件
不幸的是,Sourcetree 顯示錯誤並且無法完成工作。 Sourcetree GUI 中的錯誤
我始終啟用“顯示完整輸出”選項,因此我必須手動關閉窗口,這在您需要創建合並請求時很有用(鏈接將在那里,您只需復制它,沒有此窗口會自動關閉你會錯過復制它的更改)。 如果您看不到那個窗口,那可能是因為您禁用了該功能(這是默認設置)
從窗口復制命令。
在 Sourcetree 上打開一個 git 終端(從 sourcetree 右上角) Git 終端啟動器
粘貼命令(shift + insert)並按回車鍵。 Git 控制台
瞧! 您的文件已恢復。
在最后一張圖片中,您可以看到(失敗)嘗試從文件被刪除的提交中恢復,但實際上您需要從前一次提交中恢復,這就是前兩次嘗試失敗而后一次成功的原因(這就是~1
在 SHA 的末尾)。
希望它有幫助,快樂編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.