文 | Travis

出品 | OSC开源社区(ID:oschina2013)

不知道大家是否使用或了解过 HTTPie 这个项目,如果对它还不熟悉的话,这里先简要介绍一下:HTTPie 是一个开源的命令行 HTTP 客户端,它的目标是使 CLI 与 Web 服务的交互尽可能人性化。HTTPie 设计用于测试、调试以及通常与 API 和 HTTP 服务器交互。httphttps 命令允许创建和发送任意 HTTP 请求。它们使用简单自然的语法,并提供格式化和彩色输出。

HTTPie 项目的作者于 2012 年在 GitHub 上进行了第一次提交,至今已走过 10 年时间。经过不断地迭代和改进,HTTPie 如今已经成为了 GitHub 平台上最受欢迎的 API 工具之一,并拥有超过 5.4 万 Star 和 1 千多 Watch。

这个拥有如此高 Star 数量的项目,却因意外导致 5.4 万个 Star 全部归零。项目作者 Jakub Roztocil 近日在博客中详细介绍了此次事件的来龙去脉,也顺便可以给其他项目的作者敲响警钟。

发生了什么?

Jakub 首先是承认了此次事件是由自己的错误操作导致的:

由于一连串不幸的事件,我不小心把项目的仓库设为了私有,这个操作让 GitHub 连带删除了我们花了 10 年时间建立的社区。

为什么要设为私有

作者 Jakub 表示:

把仓库设为私有就会永久删除所有 Watch 和 Star,这是 GitHub 的一个特性。我也知道这一点,因此我显然无意将 HTTPie 设为私有。

之所以会导致这样的结果,最直接的原因是 Jakub 以为自己在一个不同的仓库里面(该仓库没有内容也没有 Star),这是他在一周前创建的,但之前一直没有向里面填充内容。

Jakub 在当时并没有意识到仓库在命名上存在不一致,HTTPie 项目的仓库为 httpie/httpie,而 Jakub 想要设置的仓库为 httpie/.github

这就是为什么我在没有意识到我的错误时,将 httpie/httpie 设为私有,而不是 httpie/.github

当 Jakub 做完操作回到组织页面后,他发现仍然可以看到空的仓库,反而是 HTTPie 项目仓库消失不见时,他才真正意识到发生了什么。于是 Jakub 立刻回到设置页面中想要重新将 HTTPie 设为公开。但 GitHub 在接下来的半个小时内都不允许他这样做,原因是 GitHub 正在 “帮助” 他删除仓库的 Star 和 Watch,无法中途停止这个过程。

GitHub 区别对待、拒绝恢复

为了尽可能避免损失,事后 Jakub 第一时间与 GitHub 取得联系,希望 GitHub 能够帮助他们恢复原本的数据。毕竟 GitHub 团队自己就曾经不小心把 GitHub Desktop 应用的仓库设置为私有,并在几个小时内就为自己恢复了一切。

当初 GitHub 的 CEO 对这一情况做出了解释:

开发人员今天早上错误地将 GitHub Desktop 仓库设为私有,重新修改回来并不会恢复它的 Star 和其他一些东西,因此我们正在从数据库备份中进行恢复。

显然 GitHub 对此是有相关备份的,并且能够通过备份挽回因不小心将仓库设为私有而造成的损失。但是在 HTTPie 项目的事件中,GitHub 却拒绝这样做,理由是会引发不良的副作用和浪费资源成本。Jakub 甚至向 GitHub 提出经济补偿,也同样遭到了拒绝。

虽然这件事是由于 Jakub 自己错误操作导致的,但他在博客中也提出了一些 GitHub 可以改善的地方,也希望其他项目作者能够避免再犯同样的错误。首先,他希望 GitHub 能够以更加清晰、明确的方式向用户告知操作的危害性,而不是一句放在任何地方都适用的 “警告:这是一个潜在的破坏性操作”;其次是改善数据库的设计,尽可能使用 “软删除”,并在一定时间范围内延迟 “硬删除”。

目前 HTTPie 已重新公开,截止完稿,该项目已获得 9 千多的 Star 数量。

技术交流群

最近有很多人问,有没有读者交流群,想知道怎么加入。

最近我创建了一些群,大家可以加入。交流群都是免费的,只需要大家加入之后不要随便发广告,多多交流技术就好了。

目前创建了多个交流群,全国交流群、北上广杭深等各地区交流群、面试交流群、资源共享群等。

有兴趣入群的同学,可长按扫描下方二维码,一定要备注:全国 Or 城市 Or 面试 Or 资源,根据格式备注,可更快被通过且邀请进群。

▲长按扫描

往期推荐
除阿里、网易和字节外,杭州居然还有这么多互联网公司!五分钟,手撸一个Spring容器!又偷偷夹带反战私货!npm生态还能信任吗?

如果你喜欢本文,

请长按二维码,关注 Hollis.

转发至朋友圈,是对我最大的支持。

点个 在看 

喜欢是一种感觉

在看是一种支持

↘↘↘

5.4万Star全部归零,项目作者:十分后悔相关推荐

  1. 一个误操作导致 5.4 万 Star 全部归零,10年的心血...

    文 | Travis 出品 | OSC开源社区(ID:oschina2013) 不知道大家是否使用或了解过 HTTPie 这个项目,如果对它还不熟悉的话,这里先简要介绍一下:HTTPie 是一个开源的 ...

  2. java外挂源码_2.7 万 Star!Github 项目源码辅助阅读神器

    [导语]:一款用于将 Github 项目代码以树形格式展示的浏览器插件. 简介 大家平时逛 GitHub 是否会觉得查看源代码的体验十分糟糕?项目文件需要一层层点击,返回也要一层层返回.这样不直观,也 ...

  3. 人生第一个过万 Star 的 GitHub 项目诞生

    写 Spring Boot 开源项目走入第三个年头,终于有一个开源项目要破万 Star 了,请各位读者大人批评指正. Spring Boot 文章 2016年,我开始学习 Spring Boot 的时 ...

  4. 过万 star 高星项目的秘密——GitHub 热点速览 Vol.39

    作者:HelloGitHub-小鱼干 虽然国外十一并不过国庆,但是本周的 GitHub 也稍显疲软,GitHub 周榜的获 star 超过 1k 的项目寥寥无几,本周新开源的项目更是屈指可数.用 C ...

  5. 1.2亿次下载,近3万Star的开源项目是为何会“死”掉?

    整理 | 孙胜 出品 | CSDN(ID:CSDNnews) Faker 是一个流行的模拟数据生成库,程序员只需简单地几步操作,就可以在浏览器和 Node.js 中生成大量的假数据,GitHub 的 ...

  6. 航拍高手、吉他十级,6500+Star 开源项目作者,后浪程序员给力!

    作者 | 伍杏玲 出品 | 程序人生(ID:coder_life) 自世界上第一台计算机于 1946 年诞生至今的七十四年里,涌现众多优秀的编程语言与工具,正因为初代编程先驱们的积极贡献才有了如今便捷 ...

  7. 1.1 万 Star!这个开源项目让马云、马斯克等大佬齐唱“蚂蚁呀嘿”

    转自:InfoQ 又一款 App 火遍全网,它能让包括马化腾.马云.马斯克在内的名人"齐唱一曲",并配有生动的表情,可以说相当魔性. 这款 App 名叫 Avatarify,已经连 ...

  8. 8万Star,这个开源项目有点强

    原文链接:https://gitee.com/sharetech_lee/DevWeekly DevWeekly收集整理每周优质开发者内容,包括开源项目.资源工具.技术文章等方面. 每周五定期发布,同 ...

  9. 牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!

    点击上方"视学算法",选择"星标" 车栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAI 春节抢票正在如火如荼的进行,过年回家那肯定需要抢票,每年的抢票 ...

最新文章

  1. Win7编译volley成jar包
  2. XenDesktop5.0 Add Host使用vSphere5.1客户端注意事项
  3. linux下使用idl生成h文件,LINIUX下IDL的安装
  4. 使用PYTORCH复现ALEXNET实现MNIST手写数字识别
  5. 什么是缓存?为什么要使用Redis?
  6. jquery插件封装指南
  7. java 查找排序_Java类库中的一些常用的查找排序
  8. C++11标准库 - array
  9. 前端如何实现网络速度测试功能_前端组件单元测试
  10. Android中使用AsyncTask实现文件下载以及进度更新提示
  11. git线上服务器_pm2实现git仓库代码一键配置部署到线上服务器
  12. 我跟 17 位顶级游戏策划人学到的 3 个产品方法论
  13. 计算机系统组成导学案,单元一任务2认识计算机系统的组成导学案.pdf
  14. VTM10.0代码学习18:xCheckRDCostMerge2Nx2N()
  15. URLDecoder与URLDecoder的简单了解
  16. 介绍几款WAP网页制作工具
  17. 手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练
  18. 单片机音频谱曲软件_单片机谱曲软件讲解
  19. ABTest之最常见的八个错误
  20. 算数-02-史丰收算法

热门文章

  1. python图的字典表示_Python dict字典精讲
  2. 部署thinkphp5框架的php,三、部署ThinkPHP5框架
  3. jackson驼峰转下划线注解_jackson序列化与反序列化的应用实践
  4. 2.2数据通信的基础知识
  5. 操作系统之文件管理:1、初识文件管理
  6. 计组之数据运算:8、c语言之强制类型转化、数据的存储与排序(大小端、字节对齐)
  7. 计组之数据运算:1、数据的表示
  8. (软件工程复习核心重点)第六章实现和测试-第一节:编码
  9. (计算机组成原理)第七章输入和输出系统-第二节2:外部设备之外存储器(磁盘的基本结构,磁盘阵列)
  10. LeetCode 153 寻找旋转排序数组中的最小值