github网站如何运作(架构)?

时间:2011-02-03 22:42:29

标签: git architecture diff github

Github是一项真正令人惊叹的服务。我很想知道他们的建筑是什么样的,以及他们如何将不同的部分组合在一起;他们如何存储存储库,如何访问这些存储库以显示文件内容,如何处理显示差异等等。有人可以概述他们使用的技术和技术,因此我可以研究它们以扩展我的知识和反过来技能?

2 个答案:

答案 0 :(得分:19)

Github的核心是开源软件git,它是一个分布式版本控制和源代码管理软件。 Github在git的功能上添加了许多功能,包括问题跟踪,维基,访问控制等。

然而,Github是专有软件,其中许多内部人员仍然不为公众所知。

为了找出各个部分是如何组合在一起的,我建议遵循下面的线索:

  • Github's official Engineering Blog,涵盖了平台设计的广泛主题。
    • 尤其是this article,由Github CTO撰写的广泛概述。
  • Projects that power Github,是为Github提供支持的官方策划的开源项目列表。以下是一些亮点:
    • rails - web backend
    • jekyll - Github Pages
    • 背后的博客引擎
    • elasticsearch - 搜索引擎
    • hubot - 用于任务自动化的聊天机器人
    • 基于ace - browswer的代码编辑器
    • d3 - 用于图形和图表的js lib
    • resque - background works
  • GitLab,Github的开源替代品,提供了几乎相同的功能。
    • 阅读GitLab的源代码,您将了解GitLab(以及Github)的工作原理。
    • GitLab Architecture Overview。这篇文章绝对是一个很好的切入点。

我从 Gitlab架构概述中窃取了系统布局图。打赌你已经从这个图表中了解了gitlab的工作原理。

(Github和GitLab之间肯定存在很多差异。但对于想要学习的人来说,开源项目总是更好,不是吗?)

GitLab system layout diagram

答案 1 :(得分:-1)

他们使用Git这是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有事情。见https://git-scm.com