Что такое GitHub и как он устроен: гид для новичков


Хостинг github

Что такое GitHub и как он устроен: гид для новичков

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

Что такое GitHub

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

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

Что можно делать через систему контроля версий:

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

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

GitHub — это веб-хостинг репозиториев (хранилищ всех файлов, связанных с проектом). По сути, это визуальный интерфейс для работы с системой Git. В GitHub можно не только размещать код, но и общаться, а также комментировать правки друг друга. Поэтому GitHub ещё называют социальной сетью для разработчиков.

Чем GitHub отличается от Git

Git и GitHub часто фигурируют в одном контексте и не все понимают, в чём между ними разница. Давайте разберёмся.

Git — это сама программа, которая контролирует версии кода. Она создаёт хранилища-репозитории, и их нужно где-то хранить.

Скриншот, на котором показана структура окна репозитория Git. Источник: сайт docs.microsoft.com

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

Интерфейс GitHub. Источник: сайт github.githubassets.com

Разберём различия подробнее.

Git

GitHub

Устанавливается на компьютер, то есть на локальную систему

Расположен в интернете

Управляется командной строкой

У него есть графический интерфейс

Это инструмент для управления различными версиями изменений, внесённых в файлы в git-репозитории

Это пространство для загрузки копий git-репозиториев

Предоставляет функции для управления системой контроля версий кода

Предоставляет функции для управления системой контроля версий кода, общения с другими разработчиками, просмотра репозиториев других разработчиков, контроля доступа, багтрекинга, управления задачами, ведения истории коммитов, интеграции с другими сервисами, ведения документации

Есть и другие онлайн-сервисы, интегрированные с Git, например, BitBucket и GitLab. У разных сервисов есть свои плюсы, какие-то более удобны для небольших проектов, у других расширенный функционал.

Для чего нужен GitHub

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

Хранить проекты

В GitHub файлы проектов сохраняются в репозитории. Когда программист один работает над проектом, он создаёт под него новый репозиторий. Когда разработчик трудится в команде, он клонирует репозиторий, который создал инициатор проекта.

Изменения кода сохраняются внутри хранилища в виде коммитов и веток.

Коммит — это объект, содержащий информацию об изменённых файлах. Из коммита можно узнать обо всех актуальных изменениях, в нём также есть ссылка на предыдущую версию коммита. Каждый коммит содержит несколько атрибутов: дата, имя, автор и комментарии разработчиков (например, «Создал страницу cart.html» при разработке интернет-магазина).

В левом столбце видно все коммиты по проекту. Источник: сайт desktop.github.com

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

Делать ревью кода

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

После ревью кода задачи, реализованные каждая в своей ветке, сливаются с главной веткой (main).

В ревью программисты комментируют изменённый код и предлагают, как его улучшить, если видят ошибки. После этого участники проекта принимают изменения и переносят коммиты в main, объединяя ветки.

Показывать портфолио

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

Чтобы смотреть чужие репозитории, даже не нужна регистрация, они общедоступны. Неудивительно, что GitHub используют IT-рекрутеры для поиска специалистов. Поэтому современному разработчику лучше иметь там аккаунт и показывать своё развитие.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *