在Git版本的项目中丢失了一些文件,只能在Github的fork中恢复它们

时间:2011-07-28 11:57:43

标签: git github fork

最近我意识到我在Github上托管的一个项目jquery.transition.js中丢失了一些文件。我在提交历史中搜索,试图找出发生的时间和方式,但找不到任何相关的提交。

然后我在Github上查看了它的网络图,并在其他人的分支中找到了所有提交和文件:https://github.com/ammonkc/jquery.transition.js/tree/gh-pages

我想知道这是怎么回事。可能是因为我无意中删除了gh-pages分支并覆盖了它?不应该出现在提交历史记录中吗?

1 个答案:

答案 0 :(得分:1)

通常可以发生的事情是:

  • 删除分支或强制推送,不再引用这些提交
  • 在该事件之前完成的fork仍然引用了所述提交

这样的推送(没有那些提交的重写历史记录)只有在被强制" (push --force),但不会在可见历史记录中留下痕迹(因为提交已被重写)。
即使在最糟糕的情况下,仍然会在reflog中引用丢失的提交,您可以:

  • 请求GitHub支持(他们可以创建一个引用所述丢失提交的分支)。
  • 或(作为回购所有者)查询GitHub事件API
    请参阅" Does GitHub remember commit IDs?"