在我工作的Eclipse Kepler 4.3.2副本中安装Android工具之后,我被迫删除Eclipse并重新安装它时出了点问题。我的工作区受到了损害,甚至我的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 :(得分:0)
我很好奇GitHub的历史也失去了;除非你使用push --force
,否则不可能。你有可能在另一个分支上完成所有这些工作吗?
假设没有......
git reflog
会向您展示旧的&#34;化身&#34; HEAD;它记得在重写历史之前分支看起来是什么样的,并且通常会为你丢失的任何内容提供一个哈希值。
或者在所有分支中执行相同的操作,git log -g --abbrev-commit --pretty=oneline --all
。
一旦您找到了提交,结帐主数据,并git reset --hard SHA
强制将该分支指向正确的哈希值。但要确保你有正确的提交,否则你只会让事情变得更糟。 :)
答案 1 :(得分:-1)
您可以使用git revert commit_sha
如果以这种方式执行,则不会覆盖历史记录,并且将创建每个恢复的一次提交
否则,您可以使用commit_sha签出文件,然后提交更改。这种方式只会在历史记录中创建一个提交