GitHub

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:51, 2 июня 2018.
Версия от 22:51, 2 июня 2018; anna manvelyan (обсуждение | вклад) (GitHub)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
GitHub, Inc.
GitHub Logo.png
Type Частная компания
Founded 8 февраля 2008 года
Headquarters Сан-Франциско, Калифорния, США
Area served По всему миру
Founder(s) Том Престон-Вернер
Крис Ванстрас
PJ Хиетт
CEO Крис Ванстрас
Key people PJ Хиетт (COO)
Industry Программное обеспечение
Employees 745[источник 1]
Website https://github.com/
Written in Ruby
Alexa rank Increase 63 (апрель 2018)[источник 2]
Type of site Git-репозиторий хостинг сервис
Registration Необязательна (создание и объединение проектов)
Users 26 миллионов пользователей (по состоянию на март 2017)
Available in Английский язык
Launched 10 апреля 2008 года
Current status Активный

GitHub (первоначально известный как Logical Awesome LLC) - это веб-cервис для хостинга IT-проектов и их совместной разработки. GitHub преподносит пользователю все функции распределенного контроля версий и управления исходным кодом (SCM) Git, а также добавляет свои собственные функции. Обеспечивает контроль доступа и несколько функций для совместной работы, таких как отслеживание ошибок, запросы функций, управление задачами и определения для каждого проекта[источник 3].

GitHub предлагает тарифные планы, как для частных репозиториев, так и для бесплатных учетных записей, которые обычно используются для размещения проектов с открытым исходным кодом. На апрель 2017 года сообщается, что количество пользователей GitHub составляет почти 20 миллионов, а количество репозиториев приблизилось к отметке 57 миллионов, что делает GitHub самым крупнейшим хранилищем исходного кода в мире.

GitHub имеет собственный талисман – осьмикот (в оригинале «Octocat»). Это кошка по имени Мона с пятью щупальцами и человекоподобным лицом.

История компании

1 марта 2008 года Крис Ванстрат упомянул в блоге, что у Github 2000 пользователей[источник 4].

24 февраля 2009 года члены группы GitHub объявили в беседе с Yahoo! что в течение первого года пребывания в сети GitHub собрал более 46 000 открытых репозиториев, из которых 17 000 были сформированы только в предыдущем месяце. В то время около 6200 хранилищ были раздвоены по крайней мере один раз и 4600 были объединены. 5 июля 2009 года компания объявила, что сайт теперь используют более чем 100 000 пользователей. 27 июля 2009 года в другом разговоре, выпущенном в Yahoo!, Том Престон-Вернер объявил, что GitHub расширился для того, чтобы разместить 90 000 уникальных открытых репозиториев, 12 000 из которых были раздвоены хотя бы один раз, в общей сложности насчитывалось 135 000 репозиториев. [источник 5]

25 июля 2010 года GitHub отметил свой 1 миллион репозиториев. 20 апреля 2011 года GitHub объявил, что количество репозиториев достигло 2 миллионов. [источник 6] On April 20, 2011, GitHub announced that it is hosting 2 million repositories.[источник 7] 2 июня 2011 года ReadWriteWeb сообщила, что GitHub превзошел SourceForge и Google Code в общем количестве фиксаций за период с января по май 2011 года. 9 июля 2012 года Питер Левин (Peter Levine), генеральный партнер инвестора GitHub Андреессен Горовиц, заявил, что доходы GitHub выросли на 300% по сравнению с 2008 годом. 16 января 2013 года компания объявила, что прошла отметку в 3 миллиона пользователей, и что в ней было размещено более 5 миллионов репозиториев. 23 декабря 2013 года GitHub объявил, что преодолел отметку в 10 миллионов репозиториев. В июне 2015 года GitHub открыл офис в Японии, который является его первым офисом за пределами США. 29 июля 2015 года компания оценивалась примерно в 2 миллиарда долларов. [источник 8]

В 2016 году GitHub занял 14 место в списке Forbes Cloud 100.[источник 9] С первым выпуском 21 июля 2017 года Brave web browser предлагает Github как одну из своих поисковых машин по умолчанию. 28 февраля 2018 года GitHub стал жертвой крупнейшей атаки с использованием DDoS’а в истории, достигнув пика около 1,35 терабит в секунду.

Цензура

3 декабря 2014 года GitHub был заблокирован в России на несколько дней из-за учебников по самоубийствам, опубликованными пользователями.[источник 10]

31 декабря 2014 года GitHub был заблокирован в Индии (наряду с другими 31 |веб-сайтом) по сравнению с содержанием ISIS, размещенным пользователями. [источник 11]10 января 2015 года GitHub был разблокирован. 12 сентября 2015 года, GitHub был вновь заблокирован по всей Индии. Однако вскоре сайт был разблокирован.

26 марта 2015 года GitHub стал жертвой массовой DDoS атаки, которая длилась более 118 часов. Атака, которая, как предполагает, исходила из Китая, в основном предназначалась на контент, размещенный пользователями GitHub, описывающего методы обхода интернет-цензуры.

8 октября 2016 года доступ к GitHub был заблокирован турецким правительством, чтобы предотвратить утечку электронной почты взломанной учетной записи, принадлежащей министру энергетики страны.

На GitHub размещают свои открытые проекты федеральные агентства США.

Обвинения

В марте 2014 года программист GitHub Джули Энн Хорват утверждала, что основатель и главный исполнительный директор Том Престон-Вернер и его жена Тереза занимались преследованием против нее, что привело к ее уходу из компании. В апреле 2014 года GitHub опубликовал заявление, опровергающее утверждения Хорват. Однако, после внутреннего расследования, GitHub подтвердил претензии. Генеральный директор GitHub Крис Ванстрат написал в блоге компании: «Расследование показало, что Том Престон-ВернерS в качестве генерального директора GitHub действовал ненадлежащим образом, включая враждебное поведение, игнорирование жалоб на рабочем месте, понижения продуктивности из-за присутствия его супруги на рабочем месте и не соблюдение соглашения о том, что его супруга не должена работать в офисе». Престон-Вернер затем ушел из компании. В 2017 году было выдвинуто больше заявлений о дискриминационном и неприемлемом поведении в GitHub разработчиком, который был завербован обещаниями GitHub по улучшению его разнообразия и вовлеченности.

Талисман

Талисман GitHub, Мона, представляет собой «октокотшку» с пятью осьминожными руками. Персонаж был создан графическим дизайнером Саймоном Оксли в качестве рисунка для iStock, веб-сайте, который позволяет дизайнерам предоставлять бесплатные изображения. Идея сделать талисманом Мону именно с пятью осьминожными руками связана с концепцией шести рукопожатий (идея о том, что любые два человека на планете могут связаться через цепочку, не более чем из пяти посредников). Социальные сети создают онлайн-сообщества, которые помогают пользователям устанавливать контакты. Таким образом создатели проиллюстрировали одну из главных идей своего проекта - создать своего рода социальную сеть для разработчиков, студентов и не только.[источник 12] GitHub заинтересовался работой Оксли после того, как Twitter выбрал птицу, которую он разработал для своего собственного логотипа. Иллюстрация, выбранная GitHub, была символом, который Оксли назвал Octopuss. Поскольку GitHub хотел, чтобы Octopuss являлся их логотипом (а использование лицензии iStock sЫзапрещало такое), они договорились с Оксли о покупке эксклюзивных прав на изображение.

Отктокошка Мона является маскотом сервиса GitHub

GitHub переименовали Octopuss в Octocat, и зарегистрировали товарный знак с новым именем. Позже GitHub нанял иллюстратора Камерона МакЭфи (Cameron McEfee), чтобы адаптировать Octocat для различных целей на веб-сайте и рекламных материалах. С тех пор МакЭфи и различные пользователи GitHub создали сотни вариаций персонажа.

Структура Организации

GitHub, Inc. изначально была плоской организацией без менеджеров среднего звена; другими словами, «каждый сотрудник является менеджером». Сотрудники могли сами выбирать работу над проектами, которые их интересуют (открытое распределение). Однако заработная плата устанавливается руководителем.

С 2014 года GitHub, Inc. ввела в свою структуру среднего слой менеджмента.

Финансирование

GitHub.com был зарождающимся бизнесом, который в первые годы обеспечивал достаточный доход, который будет финансироваться исключительно за счет его трех основателей и смог бы начать принимать на сотрудников. В июле 2012 года, спустя четыре года после основания компании, Андреессен Горовиц инвестировал 100 млн долларов в венчурный капитал. В июле 2015 года GitHub привлек еще $ 250 млн венчурного капитала в серии B. Инвесторами были Sequoia Capital, Andreessen Horowitz, Thrive Capital и другие. По состоянию на август 2016 года GitHub имеет 140 миллионов долларов США в годовом регулярном доходе.

Сервисы

GitHub

Разработка платформы GitHub началась 19 октября 2007 года. Сайт был запущен в апреле 2008 года Томом Престоном-Вернером, Крисом Ванстратом и Пью Хайтом. До этого он был запущен в течение нескольких месяцев в качестве бета-версии[источник 13].

Слева направо: Том Престон-Вернер, Крис Ванстрат, Пью Хайт

Проекты в GitHub можно получить и обработать с помощью стандартного интерфейса командной строки Git, и все стандартные команды Git работают с ним. GitHub также позволяет зарегистрированным и незарегистрированным пользователям просматривать общедоступные репозитории на сайте. Несколько настольных клиентов и плагинов Git также были созданы GitHub и другими третьими сторонами, которые интегрируются с данной платформой.

На сайте предусмотрены функции, подобные социальным сетям, такие как feeds, followers, вики (с использованием программного обеспечения wiki под названием Gollum) и график социальной сети, чтобы показать, как разработчики работают над своими версиями хранилища и какой fork новейший.

Для open-souce проектов использование сайта бесплатно. При необходимости иметь приватные репозитории, есть возможность перейти на платный тарифный план.

Пользователь должен создать учетную запись для внесения контента на сайт, но публичные репозитории могут просматриваться и загружаться кем угодно. С зарегистрированной учетной записью пользователи могут обсуждать, управлять, хранить репозитории, отправлять вклады в хранилища других и просматривать изменения в коде.

Программное обеспечение, которое запускает GitHub, было написано с использованием Ruby on Rails и Erlang разработчиками GitHub, Inc. Крисом Вантратом, PJ Хиеттом и Томом Престоном-Вернером.

Возможности

Создатели сайта называют GitHub «социальной сетью для разработчиков». Кроме размещения кода, участники могут общаться, комментировать правки друг друга, а также следить за новостями знакомых. С помощью широких возможностей Git программисты могут объединять свои репозитории — GitHub предлагает удобный интерфейс для этого и может отображать вклад каждого участника в виде дерева. (Пошаговая инструкция по работе git и github для студентов [источник 14]) Пользователи могут создавать неограниченное число репозиториев, для каждого из которых предоставляется wiki, система issue tracking-а, есть возможность проводить code review и многое другое.

Для проектов есть личные страницы, небольшие Вики и система отслеживания ошибок. Прямо на сайте можно просмотреть файлы проектов с подсветкой синтаксиса для большинства языков программирования.

Помимо исходного кода, GitHub поддерживает следующие форматы и функции:

  • Документация, включая автоматически отображаемые файлы README в различных форматах файлов Markdown
  • Отслеживание ошибок (включая запросы функций) с надписями, правопреемниками и поисковой системой
  • Wikis
  • Задавать запросы с просмотром кода и комментариями
  • История фиксации
  • Графики: импульс, вкладчики, фиксации и тд
  • Каталог интеграций
  • Уведомления по электронной почте
  • Возможность подписывать на уведомления
  • Emojis
  • Страницы GitHub: небольшие сайты могут размещаться из публичных репозиториев на GitHub. Формат URL: http(s)://username.github.io.
  • Вложенные списки задач в файлах
  • Визуализация геопространственных данных
  • 3D-файлы рендеринга, которые можно просмотреть с помощью нового интегрированного средства просмотра STL-файлов, которое отображает файлы на «трехмерном холсте».
  • Собственный формат PSD для Photoshop можно просмотреть и сравнить с предыдущими версиями того же файла.
  • Просмотр PDF-документов

Для проектов есть личные страницы, небольшие Вики и система отслеживания ошибок. Прямо на сайте можно просмотреть файлы проектов с подсветкой синтаксиса для большинства языков программирования.

  • На платных тарифных планах можно создавать приватные репозитории, доступные ограниченному кругу пользователей.
  • Есть возможность прямого добавления новых файлов в свой репозиторий через веб-интерфейс сервиса.
  • Код проектов можно не только скопировать через Git, но и скачать в виде обычных архивов с сайта.
  • Кроме Git, сервис поддерживает получение и редактирование кода через SVN [источник 15] и Mercurial[источник 16].
  • На сайте есть pastebin-сервис gist.github.com для быстрой публикации фрагментов кода.
  • Ранее Ruby-проекты могли быть автоматически опубликованы в RubyGems-репозитории сервиса, но в октябре 2009 GitHub отказался от этого сервиса

Подробнее о некоторых возможностях GitHub.

Горячие клавиши

  • Активация нечёткого поиска файлов - eсли нажать «t» при просмотре репозитория, появится строка поиска файлов, в которую можно ввести часть пути и выбрать необходимый файл, что экономит время поиска
  • Быстрый переход к определённой строке в файле - нажмите «l» при просмотре файла - появится маленькое окно для ввода номера строки
  • Быстрые переходы к разделам Github начинаются с префикса «g» (go), и следующая за ним буква указывает на место назначения. gp — переход к списку пулл-реквестов, gi — список issues, gn — страница нотификаций и так далее[источник 17]

Статистика языков программирования

На главной странице репозитория в виде цветной полосы отображается статистика используемых в данном репозитории языков. Если щёлкнуть по ней, отобразятся доли в процентах.

Метрики репозитория

GitHub предоставляет множество метрик для отслеживания работы, происходящей в репозитории (хранилище, где хранятся и поддерживаются какие-либо данные). Соответствующие инструменты мониторинга находятся на вкладках Pulse и Graph. Pulse показывает, что происходило в репозитории в определённый период времени. В разделе Graph разные показатели отражены в виде графиков. У владельцев репозиториев во вкладке Graph также появляется подпункт Traffic. По большому счёту это мини google analytics для репозитория: в нём можно отслеживать, сколько пользователей было в вашем репозитории и откуда они пришли.

Создание нового репозитория

При создании репозитория можно сразу выбрать, какой gitignore-файл необходим, какая лицензия будет у проекта и нужна ли заготовка для readme-файла. Если вашего типа проекта нет в списке gitignore, тогда следует эту ситуацию улучшить и предложить пулл-реквест в репозиторий gitignore GitHub.

Github pages

Github умеет хостить статические сайты. Это очень удобно, если вам надо сделать web-документацию для вашего проекта или промо-сайт. Многие используют гитхаб для ведения личных блогов. В самом простом случае достаточно создать в вашем github-репозитории ветку gh-pages с index.html внутри. Страница будет доступна по адресу в таком формате: http(s)://.github.io/<project_name>.

Отчеты об ошибках

Возможно использование GitHub не только для разработки и управления кодом, но и для обратной связи с пользователями. На вкладке «Issue» пользователи могут оставлять сообщения о проблемах, с которыми они столкнулись при использовании вашего продукта.

Начало работы с GitHub

  • Создание аккаунта

Чтобы создать новый аккаунт на сайте откройте главную страницу GitHub и тут же сразу вы можете ввести данные для новой учетной записи. Вам нужно указать имя пользователя, Email и пароль. На следующем шаге вам нужно выбрать тип репозитория. Публичные репозитории бесплатны, но если вы хотите создать частный репозиторий, код из которого будет доступен только вам, то придется платить $7 в месяц. Затем нужно подтвердить свой Email адрес. Для этого откройте ваш почтовый ящик и перейдите по ссылке в письме от Github[источник 18].

  • Создание репозитория

Вы можете сразу же инициализировать репозиторий, создав файл Readme, для этого нужно отметить галочку «Initialize this repository with a README» внизу страницы. Также можно выбрать лицензию. Когда все будет готово, выберите «Create project», будет создан новый проект с файлом README, в котором находится описание и файлом лицензии.

В зависимости от того, как этот термин используется, репозиторий может быть доступен пользователям или может быть местом, из которого получаются конкретные базы данных, файлы или документы для дальнейшего перемещения или распространения в сети. Репозиторий может быть просто агрегацией данных в какое-то доступное место хранения и может подразумевать некоторую способность выборочно извлекать информацию.

  • Добавление веток

Ветки Github позволяют работать с несколькими версиями проекта одновременно. По умолчанию при создании репозитория создается ветка master, это основная рабочая ветка. Можно создать дополнительные ветки, например, для того, чтобы тестировать программное обеспечение перед тем, как оно будет опубликовано в ветке master. Таким образом, можно одновременно разрабатывать продукт и предоставлять пользователям стабильную версию. Также можно создавать отдельные ветки для версии программы для разных систем.

  • Изменение файлов и коммиты

Любые изменения файлов на Github делаются с помощью коммитов (commit). Коммит выполняется путем внесения самих исправлений и описания этих исправлений. Это необходимо для того, чтобы вы знали что и когда вы меняли, а также позволяет легко отслеживать работу команды. То есть можно внести изменения в несколько файлов, а затем их зафиксировать.

  • Создание запросов слияния (Pull Request)

Запрос слияния или Pull Request — это возможность, благодаря которой любой разработчик может попросить другого, например, создателя репозитория просмотреть его код и добавить его в основной проект или ветку. Инструмент работы с запросами слияния использует инструмент сравнения diff, поэтому вы можете увидеть все изменения, они будут подчеркнуты другим цветом. Pull Request можно создать сразу же после создания коммита.

Лицензирование репозиториев

Условия обслуживания GitHub не требуют публичных программных проектов, размещенных на GitHub, для соответствия определению Open Source. По этой причине очень важно, чтобы пользователи и разработчики намеревались использовать часть программного обеспечения, найденного в GitHub, для чтения лицензии на программное обеспечение в репозитории (обычно в файле верхнего уровня, называемом «LICENSE», «LICENSE.txt» или аналогично), чтобы определить, удовлетворяет ли он их потребностям. В Условиях обслуживания говорится: «Если вы публично просматриваете свои репозитории, вы соглашаетесь разрешать другим просматривать и форкировать свои репозитории».

GitHub Enterprise

GitHub Enterprise похожа на открытую службу GitHub, но предназначена для использования крупными командами разработчиков программного обеспечения для предприятий, которое хочет разместить свои репозитории за корпоративным брандмауэром.

Gists

Gist — это git-репозиторий без поддержки директорий. Обычно его используют для хранения кусков кода и черновиков; там также можно найти полноценные туториалы и статьи. GitHub также управляет другими сервисами: сайт в стиле pastebin под названием Gist, предназначенный для размещения фрагментов кода (собственно сам GitHub предназначен для размещения больших проектов) и услуги хостинга слайдов под названием Speaker Deck.

Том Престон-Вернер представил тогда еще новую функцию Gist на панк-рок-конференции Ruby в 2008 году. Gist опирается на традиционную простую концепцию pastebin, добавляя управление версиями для фрагментов кода, простое наложение и шифрование SSL для личных вставок. Поскольку каждый «gist» имеет свой собственный репозиторий Git, несколько фрагментов кода могут содержаться в одной вставке, и их можно вытащить с помощью Git. Кроме того, раздвоенный код можно отбросить назад к оригинальному автору в виде патча, поэтому gists (пасты) могут стать больше похожими на мини-проекты.[источник 19]

Gist можно использовать на сторонних ресурсах. Многие используют его для подсветки синтаксиса кусков кода в статических блогах или на Medium.

Образовательная программа

GitHub запустил новую программу под названием GitHub Student Developer Pack, чтобы предоставить студентам бесплатный доступ к популярным инструментам и службам сервиса. GitHub для запуска программы сотрудничал с Bitnami, Crowdflower, DigitalOcean, DNSimple, HackHands, Namecheap, Orchestrate, Screenhero, SendGrid, Stripe, Travis CI и Unreal Engine.

Служба поддержки GitHub

GitHub также предоставляет некоторое программное обеспечение в качестве сервисной интеграции для добавления дополнительных функций в проекты. В данные услуги входят:

  • Waffle.io: Управление проектами для программных команд. Автоматически просматривайте запросы, автоматические сборки, обзоры и развертывания во всех ваших репозиториях в GitHub.
  • Rollbar: интеграция с GitHub для предоставления инструментов отладки в реальном времени и отчетов об исключениях из полного стека. Он совместим со всеми хорошо используемыми языками программирования, такими как JavaScript, Python, .Net, Ruby, Node.js, Android, iOS, Go, Java и C#.
  • Codebeat: для автоматического анализа кода, специализирующегося на веб и мобильных разработчиков. Поддерживаемые: Elixir, Go, Java, Swift, JavaScript, Python, Ruby, Kotlin, Objective-C, TypeScript.
  • Travis CI: Обеспечить уверенность в своих приложениях во время тестирования и отправки. Также дает полный контроль над средой сборки, чтобы адаптировать ее к коду. Поддерживаемые языки: Go, Java, JavaScript, Objective-C, Python, PHP, Ruby и Swift.
  • GitLocalize: разработан для команд, которые переводят свой контент с одной точки на другую. GitLocalize автоматически синхронизируется с вашим репозиторием, чтобы вы могли поддерживать свой рабочий процесс на GitHub.

Источники

  1. "About - GitHub". GitHub. 
  2. "Github.com Alexa Ranking". Alexa Internet. Retrieved April 25, 2018. 
  3. Williams, Alex (9 July 2012). "GitHub Pours Energies into Enterprise – Raises $100 Million From Power VC Andreessen Horowitz". TechCrunch. Andreessen Horowitz is investing an eye-popping $100 million into GitHub  (дата обращения: 21.03.2018)
  4. Wanstrath, Chris (1 March 2008). "GitHub: Free for Open Source". Github. (дата обращения: 21.03.2018)
  5. Dascalescu, Dan (3 November 2009). "The PITA Threshold: GitHub vs. CPAN". Dan Dascalescu's Wiki. 
  6. "One Million Repositories, Git Official Blog". 25 July 2010. 
  7. "Those are some big numbers, Git Official Blog". 20 April 2011. 
  8. https://ru.wikipedia.org/wiki/GitHub#cite_note-18, про GitHub на Википедии (дата обращения: 16.05.2018)
  9. "Forbes Cloud 100". Forbes. Retrieved 31 October 2016. 
  10. "Russia Blacklists, Blocks GitHub Over Pages That Refer To Suicide". 
  11. "GitHub, Vimeo and 30 more sites blocked in India over content from ISIS". thenextweb.com. The Next Web. 2014-12-31. 
  12. http://fb.ru/article/366009/github---chto-eto-takoe-kak-rabotat-s-saytom-github-com, (17.05.18)
  13. Preston-Werner, Tom (19 October 2008). "GitHub Turns One!". GitHub. Retrieved 2014-03-28. (дата обращения: 21.03.2018)
  14. Пошаговая инструкция по работе с github для студентов https://github.com/andreiled/mipt-cs-4sem/wiki/Пошаговая-инструкция-по-работе-с-git-и-github-для-студентов, (16.05.2018)
  15. Announcing SVN Support https://blog.github.com/2010-04-01-announcing-svn-support/, (16.05.2018)
  16. Hg-Git plugin for Mercurial, adding the ability to push to and pull from a Git server repository from Mercurialhttp://hg-git.github.io/, (16.05.2018)
  17. Александр Мышов Эффективное использование GitHub, (17.05.18)
  18. Как пользоваться GitHub, Losst.ru (17.05.18)
  19. https://en.wikipedia.org/wiki/GitHub (дата обращения: 17.05.2018)

См. также

  1. GitHub Википедия
  2. Git
  3. Pastebin
  4. Система отслеживания ошибок
  5. Ruby on Rails
  6. Репозиторий
  7. Как начать работать с GitHub: быстрый старт
  8. 10 популярных репозиториев на GitHub