一次找回GitHub上被删除仓库的经历

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

文章讲述了作者寻找已消失的Brainfuck语言演示网站的经历。通过GitHub的Fork功能,作者发现只要有一个Fork存在,相关提交就能永久保留。最终,作者通过互联网档案馆和GitHub找回了代码,并了解到Software Heritage可以更方便地保存代码,简化了操作。

🎯

关键要点

  • 作者回忆起高中时写的Brainfuck语言演示网站,但发现该网站已404。
  • GitHub的Fork功能可以永久保留相关提交,只要有一个Fork存在。
  • GitHub的仓库结构允许多个Fork共享同一对象库,节省存储空间。
  • 通过Fork网络,任何一个仓库都能访问到所有对象,只要有一个仓库存在。
  • 作者找到一个Fork并通过互联网档案馆获取最新的提交Hash值,成功找回代码。
  • 作者学习到如何将Fork的HEAD指针指向最新提交,并成功部署Brainfuck可视化演示。
  • 作者发现Software Heritage组织可以更方便地保存代码,简化了找回过程。

延伸问答

如何通过GitHub找回被删除的仓库?

可以通过找到该仓库的任意一个Fork,并获取最新的提交Hash值来还原仓库。

GitHub的Fork功能有什么特别之处?

GitHub的Fork功能允许多个仓库共享同一对象库,从而节省存储空间,只要有一个Fork存在,相关提交就能永久保留。

作者是如何找到Brainfuck演示网站的代码的?

作者通过互联网档案馆找到最新的仓库页面,获取了提交的Hash值,并通过Fork仓库还原了代码。

什么是Software Heritage,它有什么用?

Software Heritage是一个专门保存代码的组织,可以更方便地查找和保存代码,简化找回过程。

在GitHub上,如何将Fork的HEAD指针指向最新提交?

可以通过git fetch拉取对应提交后,使用git reset --hard命令将HEAD指针指向最新提交。

为什么GitHub的Fork网络能保留所有对象?

因为在Fork网络中,只要有一个仓库存在,GitHub就必须保留所有的对象,确保每个仓库都能访问这些对象。

➡️

继续阅读