2017-08-08 40 views
0

背景故事如何在丢失所有以前的提交后回退到旧版本的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 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

+0

不会'git fetch'然后'git checkout 9e394c24e7'工作吗? –

+0

它给'错误:pathspec'9e394c24e7'与git已知的任何文件都不匹配。' –

回答

1

去这里:

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

在树下拉这一承诺创建一个新的分支(也可以在你的树链接中工作)。现在应该在该分支下恢复提交。将分支取回到本地,并将其重置为主。然后推力。

相关问题