在丢失所有以前的提交后如何返回旧版本的 git 存储库?

How to move back to an old version of git repository after having lost all previous commits?

背景故事 :

我的存储库(比如 'ABC')托管在 github 中(但我在本地没有它的版本)。

我想向同一个存储库中添加更多文件。

我做了什么 :

我创建了一个新的本地目录(比如 'xyz')

移入其中并初始化git

cd xyz
git init

将 git 远程添加到 link 'ABC'

git remote add origin {link to ABC}

创建了一些新文件并提交了它们

git add ./
git commit -m "commit message"

接下来,当我尝试将新提交推送到 github

git push origin {branch-name}

我收到一条警告,提示我的本地计算机中缺少远程存储库的某些文件。

然后,我尝试了强制推送

git push -f origin {branch-name}

自然地(我当时不知道)我丢失了我以前所有的 'ABC' 文件,我现在只有 1 次提交(强制推送)。

还有;我什至没有以前提交的 SHA(至少我找不到它们),所以 git checkout <commit> 不起作用。 git resetgit revert

也没有

但是在 ABC github 存储库中四处搜索,我找到了一个 ,它准确地显示了我想要取回的文件。我是否可以使用这棵树或任何其他步骤来取回丢失的文件。

请忽略任何错误和我的童心。由于我是 git 的新手,所以一些技术描述可能是错误的。请随时回复。

提前致谢!

**

我的 ABC 回购的现状,有 1 次提交:https://github.com/rdrsadhu/UEM-Kolkata-B.Tech

[这不再是真的了。我通过提交 c005a51 ]

恢复了我的文件

我说的 ABC 存储库树:https://github.com/rdrsadhu/UEM-Kolkata-B.Tech/tree/9e394c24e708e590ec72e5d772be13749fb8cad3

转到这里:

https://github.com/rdrsadhu/UEM-Kolkata-B.Tech/commits/9e394c24e708e590ec72e5d772be13749fb8cad3

在 Tree 下拉列表中,在此提交上创建一个新分支(也可以在您的树 link 中工作)。现在应该在该分支下恢复提交。将分支提取到您的本地,并将其重置为 master。然后推力。