如果您沒有備份,並且您的操作系統不會執行「軟刪除」(垃圾桶,回收站,無論)還是以繞過它們的方式刪除,那麼沒有可靠的方法來恢復工作。
.git
目錄包含有關您的文件的所有內容,除了未跟蹤的文件或工作樹中的更改外,所有的一切git都知道。刪除.git/
幾乎是不必要的,非常危險,因爲這個問題不幸說明了。您使用的其他命令也比您需要的更具侵略性/危險性,而且您很可能在流程的早期就丟失了工作文件。對不起,這個消息並不好。
以供將來參考:
這是可能的reset --hard
就是刪除你的工作文件。你已經做了一些添加並想恢復它們,所以mixed
重置(這是默認設置)本來就足夠了,並且會讓你的工作樹單獨存在。硬重置將您的工作樹恢復到提交狀態(以及索引)。
重置之後,你又開始做add
秒。我想,當你不得不重新開始時,你擔心你可能會積聚不需要的狀態。事實並非如此。另一個mixed
重置會很好。您始終可以使用git status
來確保索引不包含意外的任何內容(如果是這樣,請將其清除)。
唯一持久的記錄是什麼在數據庫中,因爲你沒有犯了什麼你不影響數據庫呢。即使你犯了你想丟棄的東西,只要這些東西沒有與其他人分享,那麼就有程序來擺脫它們。
一般Git是在保護你的數據非常好,但它不能保護你有沒有犯什麼;所以要求它使用的是具有破壞性向工作樹的命令,或的摧毀倉庫和元數據(通過刪除.git/
)只應做,如果你是你爲什麼這樣做他們非常肯定。
將'.git /'從垃圾箱中取出 – Brian
嗨@Brian不幸的是它不在我的回收站中。 –
'git pull master origin'來抓取當前的提交。始終考慮提交任何重大更改,然後可以返回到'git log'和'git reset --hard [commit_ID]'。 –