github上缺少README.md文件

时间:2014-04-22 20:49:15

标签: eclipse git github egit

我把我的本地存储库放在github上。在github存储库中,我通过单击“我们建议自述文件链接”创建了README文件。我在其中写了详细的内容并承诺了。但我没有将此文件克隆到我的本地存储库中。最近,我做了一些更改,并将它们推送到github repo。今天我注意到README文件丢失了。我检查了我的提交,但在那里找不到与README相关的任何内容。

我正在使用Eclipse egit插件与github存储库进行交互。我点击了Eclipse“团队”菜单中的“同步工作区”,只是为了查看它的作用 - 这是在我注意到文件丢失之前。

无论如何都要检索我的README.md文件?请告诉我。

我的存储库:https://github.com/raghavam/d-sparq

2 个答案:

答案 0 :(得分:4)

来自the comments,原始海报说:

  

是的,我确实勾选了一个名为"强制推送"在Egit,因为没有它   给了我一个错误。与普通人相比,力推是做什么的   推?

     

但是,我还没有取得或拉扯 - 我通常不这样做,因为我是   唯一使用该回购的人,因此我当前的本地副本将是最新的。

是的,这听起来肯定是你最终用力推动你的本地副本 您的仓库,然后覆盖您对README文件所做的更改 GitHub,特别是因为你说你永远不会取或拉。

从不提取或拉动的问题是您描述编辑和 通过GitHub的Web界面提交README文件:

  

我通过单击&#34创建了README文件;我们建议使用README文件链接"。一世   在其中写了详细的内容并承诺了。但我没有克隆这个文件   进入我的本地存储库。

所以你的远程仓库承诺你当地的回购没有。这可能是 当你试图推动时,你得到的错误信息 直线,对吧?:

git push origin master
# To https://github.com/user/repo.git
#  ! [rejected]        master -> master (non-fast-forward)
# error: failed to push some refs to 'https://github.com/user/repo.git'

该消息基本上意味着您需要merge the remote commits with the work in your local repository。但不是这样做,而是你 完全覆盖了那些提交到README文件(你做的远程) 使用强制推动,如果你真的不明白,你不应该这样做 它做了什么。

非常非常小心推力。只有在你了解它的时候才使用它 是的,你确定使用它是你想要做的,因为它是你的一个 Git初学者最常失去工作的最常见方式。

恢复自述文件

由于您从未从存储库中提取或提取,因此该文件基本上是 现在无法恢复,因为它从未下载到您的本地遥控器。你' 11 需要重新开始。

答案 1 :(得分:0)

它不是不可恢复的,它很可能存在于远程存储库reflog中。通常,您无法访问远程存储库reflog,但是github具有事件API。

# show the events on repo (including commits)
curl -u <username> https://api.github.com/repos/:owner/:repo/events

# create a new branch from the commit sha found in prev command
curl -i -u <username> -X POST -d '{"ref":"refs/heads/new-branch", "sha":"<lost-sha>"}' 
https://api.github.com/repos/:owner/:repo/git/refs

第一个命令可让您找到丢失的远程提交的影子。 第二个命令使您可以在该提交上创建一个分支。 然后只需获取本地存储库上的所有更改,就会出现新分支。 在那之后,只需合并该分支或选择提交并推送即可。