Что такое GitHub и как он работает

Как пользоваться Github? Разработчики компании DST Global расскажут в гайде: путь от регистрации аккаунта и создания репозитория до управления проектами.

GitHub неразрывно связан с системой контроля версий Git, которую разработчики устанавливают на персональный компьютер. На базе Git есть платформа GitHub, где хранятся git-репозитории с открытым кодом. Это позволяет командам работать совместно. Чтобы разобраться, как всё устроено в GitHub, нужно понимать, зачем нужна система контроля версий Git (сокращённо VCS от англ. Version Control System).

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 придется. Совершенно точно это стоит сделать до начала карьеры в коммерческой разработке.

В чём разница между Git и GitHub

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

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

Ещё один вариант — использовать GitHub как хранилище проектов для портфолио: легко дать на них ссылку.

Где научиться работать в Git

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

1. Бесплатная книга Pro Git на официальном сайте Git.

2. Бесплатный онлайн-курс на английском и на русском языке.

3. Интерактивный-визуальный онлайн-тренажёр по Git.

4. Шпаргалка по Git, автор которой разместил сайт на самом GitHub. Это ещё одна его возможность — GitHub Pages.

Ещё один вариант — игра для изучения GIT Oh My Git!. Игра визуализирует внутреннюю структуру Git в режиме реального времени. Ученик подключает реальный репозиторий, изучает команды и выполняет их. Видит результат на игровом поле.

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

Альтернативы 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

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

- Программист копирует себе репозиторий или его часть;

- Работает над ним и по итогу создает новые ветки или коммиты;

- Отправляет пулл реквест на принятие изменений;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что такое GitHub и как он работает
Получить консультацию у специалистов DST
Напишите нам прямо сейчас, наши специалисты расскажут об услугах и ответят на все ваши вопросы.
Комментарии
RSS
19:19
+1
Насколько понимаю — Git — это распределённая система управления версиями: есть один сервер, через который разработчики обмениваются кодом. Разработчик копирует (клонирует) проект к себе на локальную машину, делает изменения и сохраняет их на удалённый сервер. При необходимости другие разработчики могут скопировать эти изменения к себе.
19:20
+2
Почти всё не так. Git — это распределённая система управления версиями, но это как раз о противоположном. С точки зрения git все репозитории (клоны репозитория) равноправны. Нет выделенного «сервера», есть много репозиторииев, обычно с общей частью истории коммитов. Более того, у git почти нет сервера — это просто утилита командной строки, просто есть несколько протоколов доступа к другим (reference) репозиториям. В самом git не ни аутентификации, ни прав доступа, ни истории pull request — ничего лишнего. Собственно, операция pull request достаточно специфична именно для git и отражает примерно следующее: «Я в своём репозитории сделал вот такие коммиты (с такими-то хешами родительских). Прими их, пожалуйста в свой репозиторий в ветку nnn». Т.е. не вы отправляете коммиты в чужой репозиторий, а просите «владельца» чужого репозитория их принять.

GitHub (но не git!), собственно, оборачивает этот достаточно сложный процесс совместной работы в простые и понятные схемы с «главным сервером» и наворачивает горку удобств (типа аутентификации, авторизации, история дискуссий, поиск и т.д. и т.п.)
Вам может быть интересно
Традиционные решения для управления API с трудом справляются с распределенной природой Kubernetes. Познакомьтесь с некоторыми решениями от специалистов компании DST Global, для эффективного управления...
Изучите изменяемую инфраструктуру и неизменяемые структуры: узнайте от специалис...
В современной разработке большая часть приложений ...
В этой публикации специалисты из DST Global предст...
Десятилетие совершенства: путь, влияние и будущее ...
В статье подчеркивается важность создания комплекс...
Микросервисы — это тип архитектуры, который ...
Когда дело доходит до разработки программного обес...
Инструменты контейнеризацииКонтейнеризация —...

Новые комментарии

Оптимизация производительности веб-приложений — это не просто задача, а искусств...
Если обучение кампании уже замедлилось, можно прибегнуть к действиям, о которых ...
Всё зависит от объема фида. Например, генерация динамических объявлений может за...

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон