2016-08-03 54 views
1

之後從以前的git commit中恢復文件我處於非常糟糕的狀況。我爲一個項目編寫了很多腳本並意外刪除了它們。在git rm

我有3個分支:主,開發,應用

我開發的Dev分支,繼續掌握工作副本,並在應用程序編寫應用程序腳本。我將Dev合併到了Master,然後將Master合併到了App中。但是當我忘記了我已經刪除了主人和Dev的所有應用程序腳本。所以我一味地刪除了App中的所有應用程序腳本。現在,我想回去獲取這些文件。

要回去犯我用

git revert HEAD~1 

我又試圖

git rm app_* 

到untrack文件。但是,從我的文件夾中刪除了它們。現在我無法在任何提交中找到它們。我怎樣才能得到這些文件?

+0

您可以嘗試恢復到舊版本。使用此命令查看特定文件的修訂> git log --oneline 。您可以使用此命令恢復到舊版本> git checkout#oldrevision#。 –

+0

這是很多文件。喜歡40.長名。我不記得他們中的任何一個。 – toshiomagic

+1

你可以做>> git log --oneline app_ * –

回答

2

轉到你要修復的分支。

git checkout App 

找到提交以前的文件被刪除

git log --stat 

記住,SHA和復位到SHA。

git reset --hard bada55 

重複其他分支。你可以看到你做了什麼以及使用git reflog命令發生了什麼SHA。幫助找到不在當前分支歷史記錄上的時間點。

+0

謝謝!!!統計數據就是我一直在尋找的東西。我不停地看着我的日誌思考「我不知道這些文件在哪裏」 – toshiomagic

+0

是的,'git log'只顯示提交消息。 'git log --stat'顯示文件名,'git log --patch'顯示完整的diff。您也可以通過文件/目錄'git log - my/path'過濾日誌,您可以使用'git log --grep'搜索提交消息,並且可以搜索與術語'git log -Sterm'匹配的diff。你可以將所有這些組合起來('git log --stat --patch -SmyFunction --grep Refactor - app/src') – Sukima

0

git的結帳[文件名]

git的重置頭 - 硬