Git и GitHub
Все разработчики используют ту или иную систему контроля версий (СКВ, VCS), инструмент, позволяющий им взаимодействовать с другими разработчиками на проекте без угрозы того, что кто-то перезапишет чужую работу, а также вернуться к предыдущим версиям кода при обнаружении проблем позднее.
Самая популярная СКВ (по крайней мере, среди веб-разработчиков) являются Git, а также GitHub- сайт, обеспечивающий размещение ваших репозиториев и включающий инструменты для работы с ними. Цели этого модуля - дать вам необходимые знания о каждой из упомянутых СКВ.
Обзор
СКВ являются основой для разработки программного обеспечения:
- Редко, когда вы работаете с проектом полностью самостоятельно. Как только вы начинаете работать с другими людьми, возникает риск конфликта. Речь идёт о ситуации, когда несколько человек пытается в одно и то же время обновить одну и ту же часть кода. Нужен определённый механизм, позволяющий управлять событиями и тем самым избежать потери результатов общей работы.
- Работая с проектом в одиночку или с другими, вы захотите иметь возможность иметь резервную копию кода на случай поломки вашего компьютера.
- Также у вас может возникнуть необходимость откатить изменения к более ранним версиям, если проблема обнаружена позднее. Конечно, это начать делать самостоятельно, сохраняя различные версии одного и того же файла, например
myCode.js
,myCode_v2.js
,myCode_v3.js
,myCode_final.js
,myCode_really_really_final.js
, и так далее, но это на самом деле ненадёжный и порождающий ошибки способ. - Различные члены команды могут захотеть создать собственные версии кода (в Git такие версии именуются ветками), работать над новой фичей в этой версии, а затем контролируемо объединить эту версию (в GitHub используются пул реквизиты - запросы на принятие изменений) с главной версией.
СКВ обеспечивают инструменты для решения всех вышеуказанных задач. Git является примером СКВ, а GitHub - это сайт, обеспечивающий веб-интерфейс для работы с гит, а также множество полезных инструментов для работы с гит-репозиториями лично или в командах, такие как фиксация проблем с кодом, инструменты для проверки кода, инструменты для управления созданием продукта, например назначение задач и их статусов, и т.д.
Примечание: Git — это распределённая система контроля версий, это значит что полная копия репозитория, содержащая всю кодовую базу сохраняется на ваш компьютер (и кого-либо ещё). После внесения изменений в свою копию их надо отправить обратно на сервер, и после администратор сервера решит соединять ли эти изменения с оригиналом.
Подготовка
Для использования Git и GitHub тебе необходимо:
- Компьютер с установленной версией Git (посмотри страницу загрузки Git).
- Приложения для работы с Git. В зависимости от того как ты предпочитаешь работать, можешь использовать Git-клиенты с графическим интерфейсом (мы рекомендуем GitHub Desktop, SourceTree или Git Kraken) или просто продолжай использовать окно терминала. Если честно, будет весьма полезно для тебя узнать основы использования git-команд в терминале, даже если ты собираешься работать через графический интерфейс.
- Аккаунт на GitHub. Если у тебя ещё его нет, зарегистрируйся сейчас по указанной ссылке.
Что касается предварительных знаний, вам не нужно разбираться в веб-разработке, Git / GitHub или VCS, чтобы приступить к этому модулю. Тем не менее, рекомендуется, чтобы вы разбирались в составлении кода, могли его писать и читать, а также сохранили пару строчек кода в своих репозиториях!
Также желательно, чтобы у вас были некоторые базовые знания о терминале, например, перемещение между каталогами, создание файлов и изменение системного PATH
.
Примечание: Github не единственный сайт/инструментарий который можно использовать с Git. Есть и альтернативы, такие как GitLab, а также можно настроить свой собственный сервер Git и использовать его вместо GitHub. Мы в этом курсе остановились на GitHub, чтобы показать один из рабочих способов.
Руководства
Все указанные ниже ссылки ведут на внешние ресурсы. Со временем у нас появится свой собственный курс по Git/GitHub. А сейчас они помогут вам подробнее разобраться в материале.
- Hello World (from GitHub)
-
Это практическое руководство поможет вам сразу начать пользоваться GitHub. Оно содержит основы использования Git, такие как создание репозиториев, веток, создание коммитов, открытие и слияние пулл-реквестов.
- Git Handbook (from GitHub)
-
Этот справочник по Git подробнее объясняет, что такое система контроля версий (VCS), что такое репозиторий, на чём основана модель работы GitHub, описывает команды Git, примеры их использования и многое другое.
- Forking Projects (from GitHub)
-
Это руководство объясняет, как при помощи создания форка (fork) чужого проекта вы можете поучаствовать в его разработке.
- About Pull Requests (from GitHub)
-
Полезное руководство по работе с пулл-реквестами - механизмом GitHub, с помощью которого ваши изменения отправляются на рассмотрение в чужие проекты.
- Mastering issues (from GitHub)
-
На вкладке с обсуждением проблем (issue) пользователи могут задавать вопросы и сообщать об ошибках, а вы можете курировать работу над обновлениями кода: назначать ответственных за исправление возникших проблем, отвечать на вопросы пользователей, сообщать об исправлении ошибок. Эта статья поможет вам разобраться со всем, что касается работы над проблемами.
Примечание: На самом деле при помощи Git и GitHub можно делать намного больше, но мы считаем, что эти руководства необходимый минимум для начала его эффективного использования. По мере погружения в Git и использования более сложных команд к вам придёт понимание, что очень легко сделать что-то неправильно. Не беспокойтесь, даже профессиональные разработчики иногда испытывают трудности с Git и ищут решения в Интернете. Например, на сайте Flight rules for Git или Dangit, git!
Материалы для изучения
- Understanding the GitHub flow
- Git command list (справочник по командам git)
- Mastering markdown (правила оформления сообщений в пулл-реквестах (PR), комментариях, и
.md
-файлах). - Getting Started with GitHub Pages (правила публикаций страниц и демо-сайтов на GitHub).
- Learn Git branching (интерактивный справочник по правилам ветвления в Git)
- Flight rules for Git (полезный справочник решений конкретных задач, возникающих при работе с Git, и ситуаций, когда что-то пошло не так).
- Dangit, git! (ещё один полезный справочник, сосредоточенный на решении проблем при работе Git).