2014-06-06 88 views
0

在我工作的Eclipse Kepler 4.3.2副本中安裝了Android工具之後,我強行刪除Eclipse並重新安裝它的地方出現了一些錯誤。我的工作空間受到了損害,甚至是我的git存儲庫被損壞了。如何在git中恢復文件歷史記錄

我有過去三週每天至少犯下一次的文件,他們被恢復到他們的第一個版本。這是災難的只是一個例子,其他的文件已損壞的歷史太,這個具體案例中說明如下

git log -p --follow PartyEvaluationModels/Resources/Rules/Person.d2wmodel 

commit d48d3c9b7dbb8769278a70f1400947d87e7f0d6d 
Author: Ângelo Andrade Cirino <> 
Date: Tue May 13 15:11:20 2014 -0300 

    Tentativa de implementação com ERPartials e adição de arquivos de regras 
    para todas as entidades até agora definidas. 

diff --git a/PartyEvaluation/Resources/d2w.d2wmodel b/PartyEvaluationModels/Resources/Rules/Person.d2wmodel 
similarity index 100% 
copy from PartyEvaluation/Resources/d2w.d2wmodel 
copy to PartyEvaluationModels/Resources/Rules/Person.d2wmodel 

commit 4d51eb3fa72fee750ba4b0a7e8c53216a9ea0b25 
Author: Ângelo Andrade Cirino <> 
Date: Thu May 8 23:17:01 2014 -0300 

    Funcionalidades para omitir atributos de entidades e abas de telas de 
    edição de entidades foram implementados com sucesso. 

diff --git a/PartyEvaluation/Resources/d2w.d2wmodel b/PartyEvaluation/Resources/d2w.d2wmodel 
index b6b1df4..7793fda 100644 
--- a/PartyEvaluation/Resources/d2w.d2wmodel 
+++ b/PartyEvaluation/Resources/d2w.d2wmodel 
@@ -1,4 +1,4 @@ 
{ 
- rules = (
- ); 
-} 
+ "rules" = (
+ ); 
+} 
\ No newline at end of file 

commit df14fc9d4dc2f811307b704f85d59b8cc8b0b9a7 
Author: Ângelo Andrade Cirino <> 
Date: Sun Mar 30 23:44:27 2014 -0300 

    Inserção do projeto Party 

diff --git a/PartyEvaluation/Resources/d2w.d2wmodel b/PartyEvaluation/Resources/d2w.d2wmodel 
new file mode 100644 
index 0000000..b6b1df4 
--- /dev/null 
+++ b/PartyEvaluation/Resources/d2w.d2wmodel 
@@ -0,0 +1,4 @@ 
+{ 
+ rules = (
+ ); 
+} 

正如我所說的,這個文件是幾乎每天都承諾,現在它所有的歷史都是在本地和丟失GitHub也是如此。由於我的本地副本和GitHub失去了它的歷史記錄,我想我在幾個文件上失去了三個星期的工作。

如果有人幫我找到解決方法,我將非常感激。

回答

0

我很好奇GitHub的歷史是如何丟失的;這應該是不可能的,除非你使用push --force。是否有可能在另一個分支上完成了所有這些工作?

假設不...

git reflog將顯示HEAD您老 「變身」;它記住了某個分支在重寫歷史記錄之前的樣子,並且通常會爲失去的任何內容添加散列。

或者在所有分支上做同樣的事情,git log -g --abbrev-commit --pretty=oneline --all

一旦找到提交,結帳主文件夾和git reset --hard SHA以強制將該分支指向正確的散列。但要確保你有正確的承諾,否則你會讓事情變得更糟。 :)

+0

嗨,thanx爲您提供幫助。我擁有這個回購,並沒有其他分支。我需要恢復的提交完全消失,無法找到。無論如何,具體文件提交似乎已從歷史記錄中隨機刪除,因爲我可以查看我的所有歷史記錄,但具體文件提交歷史記錄已重置爲隨機日期。就像我發佈的一個例子。 – Angelo

+0

等待,如果你還有完整的歷史,你是如何失去數週的工作的?你可以在你的問題中添加'git status'和一個'git log --all --graph --decorate --pretty ='格式:%h%n%s''的樣本嗎? – Eevee

-1

您可以使用git revert commit_sha
如果你做這種方式,你的歷史並沒有將被覆蓋,每個復歸將創建

否則一個承諾,你可以檢出與commit_sha該文件,然後提交更改。這種方式將只在您的歷史記錄中創建一個提交

+0

這似乎與這個問題沒有任何關係。這是關於丟失的提交,而不是錯誤的提交。 – Eevee

相關問題