2017-02-17 373 views
3

如何在推送後恢復git中意外刪除的文件和文件夾。以下是該場景。在git中恢復已刪除的歷史記錄文件

  1. 意外刪除了一個文件夾,它有一個文件,並對其他文件進行了一堆更改。
  2. 現在,推動所有這些變化。因此,此推送包含已刪除的文件夾以及其他已更改的文件。
  3. 除此之外,還有一些推動。

現在,我可以恢復已刪除的文件,以及歷史,然後推回到回購。

+0

Git沒有*「*文件歷史記錄」。 Git有*提交歷史記錄*。恢復文件並且您的歷史記錄顯示「提交K刪除了一些文件,稍後提交R生成了與以前具有相同名稱和相同內容的新文件」。這和你一樣近。使用Ryan的答案來獲取文件。 – torek

+0

如果你沒有使用git來刪除它們,你可以重新設置你的工作空間來讓它們恢復。你確定他們被刪除? – osowskit

+0

@osowskit你的意思是「如果你沒有使用git刪除」。我的問題本身是「如果我刪除文件並推送刪除的文件,如何恢復?」 – Rams

回答

5

當然,只是從它存在的提交中檢查出來。如果提交的是刪除的文件是不管你目前已簽出的頂端,這是HEAD^(前的最後一次提交):

git checkout HEAD^ -- path/to/file 

然後你可以提交,並將它推。

+1

你可以用一個提交SHA替換HEAD ^,這也可以工作。 –

1

假設您目前在master分支上,一個簡單的解決方案是從上次提交(使用類似gitk幫助的東西)中找到GIT SHA1與您想要刪除的文件。

執行命令

git checkout <GIT SHA1 value> 

將文件複製到記事本的內容(或任何文本編輯器)

執行命令

git checkout master 

重新創建與從記事本的內容文件

+0

這會帶回文件的歷史嗎? – Rams

+0

是的,假設文件位於同一位置並且名稱相同 –

相關問題