恢复git文件夹中的文件

时间:2016-04-06 15:25:07

标签: git github

我遇到了大麻烦,因为我正在处理一个项目,所有文件都在当下消失,我希望将它们存储到远程存储库中。

这是我做的: 我有一个项目,让我们在文件夹C:/ project /
中说 然后我创建了一个远程存储库,并希望将我的文件推送到它 我使用Git Extensions for Windows工具 我在project-folder中创建了一个新的存储库。它立即说我应该播放1000多个文件。所以我上演了他们。然后我想推它们,所以我必须设置远程存储库,我做了 之后它显示分段文件位于不同的分支上,因此我切换到远程主控。然后我想与分阶段文件合并,但他们不再存在了。所以我想换回来,但另一个分支不再存在了。我以前的所有文件都不见了。我试图检查本地主人没有成功 有没有办法让我的所有文件都恢复,或者我真的删除了所有文件?也许只是重置整个存储库?

我非常感谢你的帮助。

问候 Chriz

1 个答案:

答案 0 :(得分:1)

您可能知道,git会将您文件的每个版本存储在yourProject/.git/文件夹下。

即使git历史记录被reset --hardcommit --amendrebase等命令更改,也可以回滚到之前的提交,这要归功于reflog

免责声明:当git历史记录被更改时,某些提交可能处于分离状态,这使得它们可以进行垃圾回收。在进一步说明之前,强烈建议 备份整个项目目录,否则这些提交可能会永久丢失。

来自git documentation

  

引用日志或" reflogs",记录在本地存储库中更新分支和其他引用的提示时。

命令git reflog显示历史记录中所做的修改。这使git reset能够达到所需状态,并回滚不需要的git历史记录更改。

示例:

  • 我创建了一个空存储库
  • 我创建了一个包含内容test.txt
  • 的文件hello
  • 我承诺
  • 我将文字world附加到test.txt
  • 我修改了提交(这不会修改先前的提交,但实际上会创建一个新的提交。之前的提交仍然存在但处于分离状态。)
  • 我使用git reflog查找之前的提交。
  • 我使用git reset --hard恢复之前的提交。

输出

/tmp/test [ mkdir /tmp/test
/tmp/test [ cd /tmp/test
/tmp/test [ git init
/tmp/test [ echo 'hello' >> test.txt
/tmp/test [ git add test.txt
/tmp/test [ git commit -m 'First commit'
[master (root commit) 60292e4] First commit
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
/tmp/test [ echo 'world' >> test.txt
/tmp/test [ git commit --amend -m 'oops'
[master 76ce76f] oops
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
/tmp/test [ git reflog
76ce76f HEAD@{0}: commit (amend): oops
60292e4 HEAD@{1}: commit (initial): First commit
/tmp/test [ git reset --hard 60292e4
/tmp/test cat test.txt
hello