Скидки до 20% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Код

Что такое GitHub и как его использовать

Без стека Время чтения статьи ~9 минут
Что такое GitHub и как его использовать главное изображение

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

Познакомьтесь с Фронтенд разработкой бесплатно

Начните с этих 5 уроков

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

Что такое Git

Первым делом разберемся в терминологии. GitHub — это конкретный сайт, который работает на технологии контроля версий. Ее называют Git. Она лежит в основе практически всех аналогичных платформ.

Git создал в 2005 году отец Linux — Линус Торвальд. Он — один из евангелистов программного обеспечения с открытым исходным кодом. Над такими opensourсe-проектами одновременно работают сотни и тысячи программистов. А их исходный код публикуют в свободном доступе, чтобы каждый желающий мог внести свою лепту в разработку.

Для удобства этого процесса и создали Git. Изначально система распределенного контроля версий помогала программистам редактировать ядро Linux.

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

Принцип Git основан на сохранении состояния проекта. Он создает ссылку на определенную версию. Таким образом, можно отредактировать чужой код и оставить снимок новых файлов. А владельцу остается просмотреть изменения, а затем принять их или отклонить.

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

Как появился GitHub

GitHub создал в 2008 году программист Том Престон-Вернер. Ему и его команде нужен был удобный инструмент для разработки opensourсe-проектов.

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

Так появился GitHub, ставший стандартом в своей сфере. Сейчас эта платформа — место для хранения проектов и совместной разработки, а также аналог социальной сети для разработчиков.

Что делают в GitHub:

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

Кому нужен GitHub

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

А GitHub важен для социализации программиста и поиска первой работы. При помощи этого сервиса можно найти и принять участие в opensourсe-проектах. Они помогут получить первый опыт разработки и подтвердить его перед работодателем.

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

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

Можно ли обойтись без GitHub

На первых этапах обучения — да. Если вы пишете код для простых ученических работ или создаете небольшие проекты, их можно хранить локально на своем компьютере.

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

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

Можно сказать, что рано или поздно освоить GitHub придется. Совершенно точно это стоит сделать до начала карьеры в коммерческой разработке.

Познакомьтесь с Python бесплатно

Начните с этих 5 уроков

Альтернативы GitHub

Технология Git — незаменима для совместной работы над проектами. А вот GitHub как платформа имеет аналоги. Просто этот сайт — самый популярный. Сейчас на нем зарегистрировались 83 миллиона пользователей, а количество опубликованных проектов перевалило за 200 миллионов.

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

Альтернативы GitHub:

  • GitLab — один из самых старых аналогов, написанный на языке Go. За счет этого он отличается прекрасной производительностью. Его основное достоинство — охват всего жизненного цикла DevOps, что удобно для крупных проектов. У него, также как у GitHub, есть полностью функциональная бесплатная версия, которая покрывает большинство потребностей разработчиков;
  • Gogs — решение для небольших команд и студентов, не имеющих серьезных требований к обилию инструментов. Это бесплатное решение, которое запускается на всех операционных системах и даже Raspberry Pi. Интерфейс сервиса максимально похож на упрощенный и лаконичный GitHub;
  • Phabricator — проект Facebook, который изначально использовали только для работы внутри компании. Помимо Git поддерживает другие варианты репозиториев и легко устанавливается. Также в нем есть собственная доска для управления проектами;
  • GitFlic — российский облачный сервис для совместной работы над проектами. Платформа пока не так функциональна, как более старые аналоги. Зато в ней есть интеграция с привычным в России ПО, например, с Telegram.

Основные термины в GitHub

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

Репозиторий (repository)

Это основная сущность в GitHub. Репозиторий — это страница проекта на платформе и корневая папка, в которой хранят все вложенные директории определенной программы.

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

Репозиторий можно оставить в публичном доступе, а можно заприватить. Для управления репозиториями в GitHub используют командную строку, приложение для десктопа, а также IDE (с большинством у сервиса есть интеграция).

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

Ветки (branch)

Они нужны для группировки изменений в проекте. Например, вы разместили в репозитории первую версию своего сайта, которая будет главной. По умолчанию ей присвоят имя — main.

Если владелец репозитория или сторонний разработчик захочет что-то поменять, он создаст свою ветку с новой функциональностью, которую внесет на основе исходной.

Ветки могут существовать параллельно, при желании их можно объединить в одну при помощи слияния — merge.

Коммиты (commit)

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

Коммиты обычно вносят на локальном репозитории. А его публикацию на  GitHub называют пушем — push. Пушить изменения — как бы «проталкивать» их в общее поле.

Для внесения изменений в репозиторий можно пользоваться двумя способами:

  • Clone — клонировать или попросту скопировать репозиторий на свой локальный диск или собственный сервер;
  • Fork — форкнуть или создать развилку, то есть новую ветку.

Слияние

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

То есть фактически объединить все ветку в одну. Для этого нужно провести пулл реквест (pull request). Заканчивая процесс, разработчик подает заявку на слияние всех веток.

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

До полного слияния, о котором мы говорили выше, члены команды обычно проводят код ревью (code review). То есть просматривают все изменения и проверяют их на предмет ошибок.

Стандартная работа с GitHub

Обычно процесс работы с платформой выглядит так:

  • Программист копирует себе репозиторий или его часть;
  • Работает над ним и по итогу создает новые ветки или коммиты;
  • Отправляет пулл реквест на принятие изменений;
  • Владелец проекта проводит код ревью, принимает их или отклоняет. В случае успеха, он объединяет эту ветку с основной.

Познакомьтесь с ручным тестированием бесплатно

Начните с этих 5 уроков

Как начать работать с GitHub

Самый простой способ работы — загрузить на сайт платформы свой проект. Сделать это очень легко. Достаточно найти в правой панели знак «+», нажать на него и выбрать «New Repository».

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

После создания описания нужно нажать на «Create Repository». Ваш первый репозиторий готов. Для загрузки зайдите в нужное хранилище и нажмите на «Add file».

Как искать проекты

Вторая по популярности функция GitHub — социальная. Пользователь может не только хранить свои проекты, но и просматривать чужие, которые находятся в свободном доступе.

Для этого на сайте есть система внутреннего поиска. Она ищет по ключевым словам, упомянутым в названии или коротком описании репозитория.

Дополнительно в нем содержится тип лицензии и частота обновлений, то есть — дата последнего релиза.

У проекта есть форки (аналог репостов) и звездочки (аналог лайков) — это местный рейтинг, обозначающий популярность репозитория. Чем их больше, тем интереснее для пользователей выложенный код.

Для лучшего использования поиска можно ставить звездочки подходящим репозиториям, тогда платформа будет самостоятельно рекомендовать то, что может вас заинтересовать.

Как научиться пользоваться GitHub

Самый простой способ — разместить собственный репозиторий и поискать интересные opensource-проекты, в которые вы сможете внести свою лепту. Но не всегда это выглядит как простая задача.

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

У GitHub много дополнительных инструментов и неочевидных возможностей.

Полезные пособия:

  1. Книга «Pro Git» от Скотта Шакона. Автор сам принимал участие в разработке этой платформы, поэтому в курсе всех ее особенностей. Книга написана простым языком и подойдет новичкам. Есть перевод на русский.
  2. Руководство по Git. Интерактивный учебник, который познакомит с самой технологией и ее возможностями. Есть только англоязычная версия, адаптированная под разные платформы.
  3. Пользователь «Хабра» сделал подборку самых интересных репозиториев. Из них начинающий и даже опытный разработчик сможет почерпнуть много интересного. Если вы уже разобрались с проектами, но не знаете «куда пойти» — вот готовое решение. Первый список и второй.
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря