GitHub是一个用于版本控制和协作的代码托管平台,允许您和其他人从任何地方共同处理项目,运用领域为Git 的分布式版本控制,以及每个项目的访问控制、错误跟踪、软件功能请求、任务管理、持续集成和 wiki。
GitHub允许用户使用标准的Git命令行界面来访问和管理项目,所有标准的Git命令都可以在其上运行,用户可以浏览网站上的公共代码库,并可以使用多个桌面客户端和Git插件来进行操作。
任何人都可以浏览和下载公共代码库,但只有注册用户才能对代码库进行贡献,注册用户可以进行讨论、管理代码库、向他人的代码库提交贡献并审查代码的变更。
GitHub平台于2007年10月1日开始开发。
网站于2008年2月以beta版本开始上线,4月份正式上线。
GitHub里面的项目可以通过标准的Git命令进行访问和操作。
同时,所有的Git命令都可以用到GitHub项目上面。
GitHub开发了针对Microsoft Windows和macOS操作系统的桌面客户端。
此外,也可以使用第三方插件来实现Git功能。
网站提供了一系列社交网络具有的功能,例如标星/赞(star)、关注(follow)、评论。
用户可以通过复刻(fork)他人项目的形式参与开发,并可通过协作示意图来查看有多少开发者参与了开发并追踪最新的复刻版本。
此外网站还有Wiki(通过一个名为 gollum 的软件实现)等功能。
GitHub同时允许注册用户和非注册用户在网页中浏览项目,也可以以ZIP格式打包下载。
但是用户必须注册登录一个账号才能讨论、创建并编辑项目、参与他人的项目和代码审查。
GitHub支持建立不限数量的公开仓库,已付费用户可以建立私有仓库。
2019年1月7日,GitHub宣布免费用户也可以建立私有仓库,私有仓库数量不限但每个仓库最多指定三个合作者。
2020年4月14日,GitHub宣布进一步开放核心功能,取消私有仓库合作者数量限制,并降低了收费账号费用。
GitHub, Inc. 原本是扁平化的组织框架,没有中端主管,而依赖于员工的自我管理能力。
员工可以自由选择有兴趣的项目开发(自由分派),但是薪水由首席执行官订定。
在2014年,GitHub新增了一层中端主管来应对关于高阶主管的严重骚扰指控。
针对此事件,首席执行官 Tom Preston-Werner辞职。
GitHub系统由GitHub公司的开发者Chris Wanstrath开发。
系统采用了Ruby on Rails和Erlang作为后端。
GitHub通常用于软件开发。
GitHub还支持以下格式和功能:文档:包括自动生成的、采用类Markdown语言的Readme文件(称作GitHub Flavored Markdown, GFM)。
问题追踪系统(同时可用于功能需求)GitHub Pages支持用户通过软件仓库建立静态网站或静态博客(通过一个名为Jekyll的软件实现,但是也支持采用诸如 Hexo 等其他博客引擎搭建)。
GitHub的许可条款并不要求公有仓库满足自由软件标准。
在建立软件仓库时,GitHub会询问用户准备采取的软件许可证,此外用户也可以使用自己的许可证。
GitHub Enterprise和GitHub的服务类似,不过它为大型企业的开发团队量身定制,并可提供自托管版本服务器软件。
GitHub Pages是GitHub提供的一个网页托管服务,可以用于存放静态网页,包括博客、项目文档甚至整本书。
一般GitHub Pages的网站使用github.io的子域名,但是用户也可以使用第三方域名。
Github Pages以开源仓库公开静态网页源代码,可在仓库->设置->Code and automation里设置, https://github.com/ (页面存档备份,存于互联网档案馆)<用户名>/<仓库名>/settings/pages。
GitHub提供一个粘贴箱风格的站点GitHub Gist。
Tom Preston-Werner于2008年开发了Gist功能。
Gist继承了粘贴箱的观念,此外还添加了版本控制、复刻、SSL加密等功能。
因为代码片段也是Git仓库,所以单个代码片段可以容纳多个文件,并且可以通过Git进行操作。
因此Gist更像一个小型项目。
2014年11月2日,Gist在中国大陆被防火长城屏蔽,无法正常访问。
GitHub与Algolia、Microsoft Azure、Bitnami、Crowdflower、DigitalOcean、DNSimple、GitKraken、Heroku、HackHands、JetBrains、Namecheap、Name.com、Orchestrate、Screenhero、SendGrid、Stripe、Travis CI和虚幻引擎等共同合作,于2014年10月7日发起了一个名为GitHub学生开发者套装的项目。
该项目为学生提供了一些免费的开发工具和服务。
[22