Гайд для начинающих: Git vs GitHub: В чем разница?

Привет!
Сначала мы изучим, что такое веб-разработка, а затем рассмотрим систему контроля версий Git. Далее разберёмся, что представляет собой GitHub и как её использовать, а после сравним эти два инструмента. Наконец, объясним, как работать с Git без GitHub, и расскажем о возможных подводных камнях.
Что такое веб-разработка?
Посмотрите на всё, что можно открыть в интернет-браузере. Все эти сайты — результат веб-разработки.
Существует три основные категории веб-разработки: Frontend, Backend и Full-stack.

Бэкенд-разработка отвечает за хранение и обработку данных через взаимодействие с базой данных — той частью приложения, к которой пользователь не имеет прямого доступа.
Полнофункциональная (Full-stack) веб-разработка объединяет фронтенд и бэкенд.
Рассмотрим пример. Вы ищете красные брюки на сайте магазина и вводите в поисковую строку «красные брюки». Дизайн и внешний вид строки — это фронтенд. Приём запроса и выдача подходящих товаров — задача бэкенда.
Если вы хотите освоить фронтенд-разработку, начать проще, чем кажется. Курс от образовательной платформы Netology «Frontend-разработчик с нуля до middle» поможет научиться создавать сайты и приложения, проектировать интерфейсы, работать с Flexbox и JavaScript. По окончании курса вы соберёте портфолио из 9 проектов и сможете начать работать по специальности уже через 6 месяцев обучения.
Что такое Git?
Если вы планируете работать разработчиком ПО или веб-разработчиком, Git станет вашим ежедневным инструментом. Git позволяет отслеживать изменения в файлах проектов и организовывать совместную работу.
Представьте: вы внесли правки в код, сохранили их, а проект перестал работать. При этом вы не помните, как выглядел предыдущий вариант. Что делать?

С помощью Git изменения фиксируются в репозитории (команда commit). При необходимости можно отменить фиксацию и вернуться к предыдущей версии кода.
Git бесплатен, имеет открытый исходный код, отличается высокой скоростью и масштабируемостью. Это самая популярная система контроля версий. Системы контроля версий делятся на две категории: централизованные и распределённые.
Централизованные системы контроля версий
В централизованной системе все участники команды подключаются к одному серверу, чтобы работать с актуальной версией кода. Такие системы проще освоить, но при сбое сервера работа останавливается для всех.
Распределённые системы контроля версий
В распределённой системе каждый участник хранит полную копию проекта на своём компьютере. Даже при недоступности сервера разработчики могут продолжать работу и обмениваться изменениями. Git относится именно к этому типу.
Хотя Git сложнее в освоении, он обеспечивает большую безопасность кода и не имеет единой точки отказа.
Что такое GitHub?
GitHub — это платформа, позволяющая размещать проекты с кодом в интернете.
Для работы с GitHub нужно зарегистрировать аккаунт. Любой пользователь может бесплатно публиковать публичные репозитории. Это сделало GitHub особенно популярным среди проектов с открытым исходным кодом. За дополнительную плату компании получают расширенные возможности и повышенный уровень безопасности.
GitHub предоставляет удобные инструменты для совместной разработки. Две ключевые функции, которыми чаще всего пользуются разработчики, — pull request и code review.

Коллеги проверяют и тестируют код — это называется code review. Обычно перед слиянием изменений в основную ветку требуется провести ревью.
Во время code review команда оценивает безопасность и эффективность кода. Репозиторий («репо») — это место хранения всех файлов и кода проекта. Он помогает предотвращать ошибки и обеспечивает резервное копирование.
Различия между Git и GitHub
Git — это система, отслеживающая изменения и версии проекта. GitHub — это веб-сервис, на котором размещаются репозитории Git. По сути, GitHub представляет собой онлайн-базу данных для совместной работы над проектами в облаке.
Оба инструмента помогают разработчикам безопасно экспериментировать с кодом. GitHub добавляет облачное хранение и дополнительные возможности для командной работы: pull request, issues и code review.
GitHub как социальная сеть

Это делает GitHub ценным инструментом при поиске работы в веб-разработке. По профилю можно быстро оценить опыт кандидата: как давно он кодит, над какими проектами работал и каково качество его кода.
Через GitHub можно также создать issue к существующему проекту — сообщить об ошибке, предложить новую функцию или задать вопрос. Обсуждение, приоритизация и детализация задач происходят прямо на платформе.
Форкинг
Увидели интересный open-source проект и хотите его улучшить или использовать как основу для своего? Воспользуйтесь форкингом. При форке создаётся полная копия репозитория в вашем аккаунте, где можно вносить любые изменения.
Например, вы хотите сделать форум для любимого фандома. Находите подходящий open-source проект, форкаете его и настраиваете под себя: меняете цвета, добавляете изображения и стилистику фандома. Можно реализовать новую функцию или исправить найденные ошибки.
Можно ли использовать Git без GitHub?

Однако в этом случае проект не сохраняется на внешнем сервере. Отсутствуют резервные копии, а совместная работа с другими участниками существенно усложняется.
Заключительные мысли
Git и GitHub — два термина, с которыми регулярно сталкиваются в веб-разработке. Независимо от того, работаете вы фронтенд-, бэкенд- или full-stack-разработчиком, эти инструменты станут частью вашего ежедневного процесса.
Сначала терминология может показаться сложной: pull request, merge, push, review, fork, repository… Не переживайте — вы быстро привыкнете к жаргону и оцените все преимущества этих сервисов.
Вы не только учитесь, изучая код коллег, но и получаете возможность отменить практически любые изменения. Спокойствие от понимания, что случайная ошибка не испортит продукт, — бесценно.
До новых встреч, друзья!
Подпишитесь на рассылку
Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.