GitHub — это крупнейшая веб-платформа для хостинга Git-репозиториев, совместной разработки и автоматизации процессов, принадлежащая Microsoft. Она предоставляет не только хранение кода с контролем версий, но и полный набор инструментов для управления проектами: Issue Tracking, Pull Request с код-ревью, Actions для CI/CD и Wiki для документации. По данным GitHub, 2024, платформа насчитывает более 100 миллионов разработчиков и 420 миллионов репозиториев.
Главное
GitHub — это веб-сервис для хранения и совместной работы над Git-репозиториями, основанный в 2008 году Томом Престоном-Вернером, Крисом Ванстратом и Пи Джей Хайеттом. В 2018 году компания была приобретена Microsoft за 7,5 миллиарда долларов. Платформа предоставляет веб-интерфейс для всех операций Git, добавляя поверх него социальные функции: форки, звёзды, подписки, код-ревью и встроенную систему непрерывной интеграции.
Ключевое отличие GitHub от конкурентов — открытая экосистема и крупнейшее сообщество разработчиков. На GitHub размещены исходные коды Android, Kubernetes, React, Swift, Kotlin и тысяч других open-source проектов. Это делает платформу не только инструментом хранения кода, но и социальной сетью для разработчиков: можно следить за проектами, обсуждать изменения и вносить свой вклад через pull request.
По данным отчёта Microsoft (2024), через GitHub ежедневно проходит более 10 миллионов новых Pull Request, а количество ежемесячных активных пользователей превысило 100 миллионов. Платформа поддерживает более 500 языков программирования, автоматическое обнаружение языка по расширению файлов и подсветку синтаксиса кода.
Функционал GitHub выходит далеко за рамки простого хостинга Git. Платформа предоставляет: GitHub Actions — встроенную систему CI/CD; GitHub Packages — реестр пакетов и контейнеров; GitHub Codespaces — облачные среды разработки на базе VS Code; GitHub Discussions — форум для сообщества; GitHub Security — Dependabot для автоматического обновления зависимостей и сканирования уязвимостей; GitHub Copilot — AI-ассистент для написания кода.
Для организаций GitHub предлагает GitHub Enterprise — корпоративную версию с самописным хостингом (GitHub Enterprise Server) или облачным развёртыванием (GitHub Enterprise Cloud). Корпоративные функции включают SAML/SSO-аутентификацию, аудит действий, политики безопасности репозиториев и SLA на 99,95% доступности. Enterprise-версия используется такими компаниями, как Google, Apple и Airbnb.
Важная особенность GitHub — GitHub CLI (gh), который позволяет выполнять все операции с платформой из командной строки без использования веб-интерфейса. С помощью gh можно создавать репозитории, управлять Issues, просматривать Pull Request и запускать Actions прямо из терминала, что ускоряет работу разработчиков, привыкших к командной строке.
| Функция | Назначение | Доступность |
|---|---|---|
| Actions | CI/CD и автоматизация | Бесплатно 2000 мин/мес |
| Codespaces | Облачная IDE на базе VS Code | Платно, 60 ч/мес бесплатно |
| Packages | Хостинг пакетов и Docker-образов | Бесплатно 500 MB |
| Dependabot | Автоматическое обновление зависимостей | Бесплатно для публичных репо |
| Pages | Хостинг статических сайтов | Бесплатно |
Pull Request (PR) — это основной механизм внесения изменений в проект на GitHub. Разработчик создаёт ветку с изменениями, публикует её на GitHub и отправляет запрос на слияние (Pull Request) в основную ветку. Другие участники проекта видят разницу (diff) между ветками, могут оставлять комментарии к конкретным строкам кода, предлагать изменения и утверждать или отклонять запрос.
Процесс код-ревью на GitHub построен вокруг PR. Каждый комментарий привязывается к конкретной строке diff и может быть трёх типов: Comment (обычный комментарий), Request Changes (требует исправлений) и Approve (одобрение). После внесения изменений автор обновляет PR новым коммитом, и процесс ревью повторяется. Когда все замечания устранены и PR утверждён, изменения сливаются в целевую ветку.
# Создание feature-ветки и пуша
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# Создание PR через CLI
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# Просмотр и merge PR
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub поддерживает защиту веток (branch protection rules): можно запретить прямой push в main, требовать обязательное количество одобрений перед merge, запускать Actions-проверки и требовать актуальность ветки перед слиянием. Защита веток настраивается в Settings → Branches и является обязательной практикой для production-проектов, предотвращающая случайное внесение нестабильного кода в основную ветку.
GitHub Actions — это встроенная платформа CI/CD, которая позволяет автоматизировать рабочие процессы прямо в репозитории. Workflow описывается в YAML-файлах, расположенных в директории .github/workflows/. Каждый workflow состоит из одного или нескольких job, которые выполняются на раннерах — виртуальных машинах с Linux, Windows или macOS.
Actions поддерживает событийно-ориентированную модель: workflow запускается при пуше, создании PR, публикации релиза, по расписанию или через webhook. Это позволяет автоматизировать сборку, прогон тестов, статический анализ кода, публикацию в магазины приложений и деплой на сервер без участия разработчика. Ниже приведён пример workflow для Android-проекта:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Экосистема Actions включает более 20 000 готовых действий в GitHub Marketplace. Популярные действия: checkout (клонирование репозитория), setup-java/setup-node/setup-python (настройка окружения), upload-artifact (сохранение артефактов сборки), cache (кэширование зависимостей для ускорения), slack-notify (отправка уведомлений в Slack). Actions также поддерживает матричную сборку — одновременный запуск на нескольких версиях ОС или языков.
Issues — это встроенная система отслеживания задач на GitHub. Каждый Issue имеет заголовок, описание, метки (labels), назначенных исполнителей (assignees), вехи (milestones) и связанные Pull Request. Issues могут быть шаблонизированы — для баг-репортов, feature request или вопросов используются разные шаблоны, которые автоматически подставляются при создании.
GitHub Projects (ранее Projects Beta) — это инструмент управления проектами на базе досок, похожий на Jira и Trello. Projects поддерживает кастомные поля (статус, приоритет, спринт), связь с Issues и Pull Request, автоматизацию перемещения карточек при изменении статуса задачи и аналитику в виде диаграммы сгорания задач (burndown chart). Projects доступен в двух режимах: Table (табличное представление) и Board (канбан-доска).
Для управления релизами GitHub предоставляет Milestones — группы Issue и PR, объединённые общей целью с дедлайном. Каждая веха показывает прогресс выполнения: сколько задач открыто, сколько закрыто и насколько соблюдается срок. Milestones интегрируются с Releases — при публикации релиза можно привязать его к вехе и автоматически сформировать список изменений в CHANGELOG на основе закрытых Issue.
GitHub Pages — это бесплатный хостинг для статических сайтов, который автоматически публикует содержимое репозитория по адресу https://username.github.io/repository. Pages поддерживает HTML, CSS, JavaScript и статические генераторы: Jekyll (встроен), Hugo, Next.js (экспорт) и MkDocs. Настройка включает выбор ветки и директории для публикации, а также поддержку кастомного домена.
Для технической документации GitHub предоставляет Wiki — встроенную вики-систему, которая также хранится как Git-репозиторий. Wiki поддерживает Markdown и позволяет редактировать страницы как через веб-интерфейс, так и локально через push в wiki-репозиторий. Каждая Wiki-страница имеет собственную историю изменений, что удобно для документирования API, архитектуры и процессов проекта.
Комбинация GitHub Pages + Jekyll — популярное решение для сайтов документации. Jekyll автоматически преобразует Markdown-файлы в статические HTML-страницы, поддерживает темы, навигацию и поиск. Например, документация Android Developers ранее использовала Jekyll на GitHub Pages, а сейчас — внутреннюю платформу, но тысячи open-source проектов продолжают использовать эту связку для своих сайтов.
GitHub CLI (gh) позволяет выполнять все операции с платформой через командную строку: создавать репозитории, управлять Issues, просматривать и утверждать Pull Request, запускать Actions. Команда gh repo create my-project --public создаёт удалённый репозиторий и связывает его с локальным, а gh pr create формирует Pull Request из текущей ветки. CLI ускоряет работу разработчиков, которые предпочитают терминал веб-интерфейсу.
GitHub REST API и GraphQL API предоставляют программный доступ ко всем функциям платформы: создание Issue, управление пользователями, получение статистики и управление Actions. GraphQL API предпочтительнее для сложных запросов, так как позволяет получить только нужные поля за один запрос. Rate limit для REST API — 5000 запросов в час для аутентифицированных пользователей. API широко используется для интеграции GitHub с внешними CI-системами и внутренними инструментами DevOps.
GitHub Gist — сервис для публикации фрагментов кода без создания полноценного репозитория. Gist поддерживает подсветку синтаксиса, встраивание на внешние сайты и историю версий. Каждый Gist может быть публичным (виден в поиске) или секретным (доступен только по ссылке). Gist используется для быстрого обмена конфигурациями, логами и примерами кода в командной переписке, а также как аналог Pastebin для разработчиков.
Часто задаваемые вопросы
GitHub делает упор на открытое сообщество и социальные функции (форки, звёзды). GitLab предлагает более мощный встроенный CI/CD и самописный хостинг (Self-Managed) без ограничений по минутам Actions.
GitHub Team стоит 4 доллара на пользователя в месяц и даёт неограниченные приватные репозитории, защиту веток и Actions (3000 минут). Бесплатный тариф подходит для небольших open-source проектов.
При создании репозитория выберите Private вместо Public. В приватных репозиториях код видят только приглашённые участники. На бесплатном тарифе приватные репозитории доступны с ограничением до 3 коллабораторов.
GitHub Copilot — AI-ассистент на базе OpenAI Codex, который предлагает автодополнение кода в реальном времени. Работает в VS Code, JetBrains и Neovim, поддерживает все популярные языки программирования.
Перейдите в Settings → Danger Zone → Delete this repository. Удаление необратимо — все коммиты, Issue и Wiki будут удалены без возможности восстановления. Предварительно убедитесь, что у вас есть бэкап.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также