背景故事:如何在丢失所有以前的提交后回退到旧版本的git存储库?
我的回购协议(说“ABC”)在GitHub上托管(但我没有本地版本的话)。
我想添加更多的文件到同一个回购。
我做什么:
我创建了一个新的本地目录(说 'XYZ')
搬进它和初始化的git
cd xyz
git init
添加git的远程链接“ABC '
git remote add origin {link to ABC}
创建了一些新的f尔斯并承诺他们
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 reset
或git 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
不会'git fetch'然后'git checkout 9e394c24e7'工作吗? –
它给'错误:pathspec'9e394c24e7'与git已知的任何文件都不匹配。' –