Знакомство с GitHub

Знакомство с GitHub

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

Вкратце, это платформа для разработчиков программного обеспечения, основанная на системе контроля версий Git.

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

Почему GitHub?

Теперь, когда вы знаете, что такое GitHub, вы можете спросить, почему следует пользоваться именно им?

Да и вообще, GitHub управляется частной компанией, которая получает прибыль от размещения кода людей. И почему нельзя использовать аналогичные платформы,такие как BitBucket или GitLab?

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

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

Поэтому сегодня, когда вы просматриваете какую-то библиотеку, вы в 99% случаев найдете ее на GitHub.

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

Теперь давайте начнем с важных концепций Git, которые должен знать разработчик.

GitHub Issues

GitHub Issues - один из самых популярных трекеров ошибок в мире.

GitHub Issues предоставляют владельцам репозитория возможность организовывать, помечать и связывать вопросы с определенными этапами разработки.

Если создать задачу на проекте другого пользователя, она останется открытой до тех пор пока вы или кто-то другой не решит ее или владелец репозитория просто не закроет ее.

Бывает так, что ответы на ваши вопросы поступают немедленно. А бывает и такое, что задача висит месяцами в ожидании решения. За это время вы получите комментарии других разработчиков и в дальнейшем сможете вернуться к ней, чтобы что-то исправить или улучшить код.

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

Пишем код вместе

Несколько лет назад логотип GitHub включал слоган “пишем код вместе”. Думаю, понятно, что это значит.

Будь в теме

На GitHub вы можете подписаться на профиль интересующего разработчика или репозиторий. Для этого нужно просто кликнуть “follow” на странице пользователя или кликнуть “watch” на репозитории.

В обоих случаях активность будет отображаться на панели инструментов. Благодаря этому вы сможете отслеживать актуальную информацию.

Система “Звезд”

Одной из отличительных особенностей GitHub является система звёзд. Чтобы выразить свой интерес к репозиторию, его нужно отметить звездой. Это можно сделать с помощью кнопки «Star». Это позволит вам отслеживать интересные проекты и находить похожие.

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

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

Fork

Fork - это копия репозитория. Это то же самое, что branch в Git.

Если вы хотите внести свой вклад в уже существующие проекты, в которых у нас нет прав на внесения изменений путем отправки (push) изменений, вы можете создать свое собственное ответвление (“fork”) проекта. Это означает, что GitHub создаст вашу собственную копию проекта, данная копия будет находиться в вашем репозитории и вы сможете легко делать изменения путем отправки (push) изменений. Также другой человек может разветвить ваш репозиторий, внести некоторые изменения, а затем создать запрос на внесение этих изменений.

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

Популярный = лучший

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

Pull Request

В предыдущей части я уже говорил что такое Pull Request. Повторюсь, человек может создать свое собственное ответвление (“fork”) проекта, внести некоторые изменения и затем сделать Pull Request., чтобы вы замерджили эти изменения.

Чем популярнее проект, тем больше PR он будет иметь, как например, проект React:

Знакомство с GitHub

Как только человек делает Pull Request, он рассматривается основными разработчиками проекта. В зависимости от количества и сложности изменений, которые вы внесли в код, разработчику может потребоваться разное количество времени, чтобы убедиться, что ваши изменения совместимы с проектом.

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

Но важно еще знать, что ваш запрос может и не быть рассмотрен вовсе. В приведенном выше примере в репозитории есть запрос, который был сделан 1,5 года назад. Так бывает практически во всех проектах - это вполне нормально.

Управление проектами

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

Одна из таких функций - Projects. Нововведение в GitHub. Она основывается на методологии Канбан, которая помогает эффективно организовать работу.

Wiki предназначен для использования в качестве документации для пользователей.Одним из самых впечатляющих видов использования Wiki, которые я видел до сих пор, является язык программирования Go GitHub Wiki.

Еще один популярный инструмент для управления проектами -вехи. Это часть страницы "issues ". Используя эту функцию, вы можете назначать контрольные точки проекта.

Тэги в Git - это указатель на конкретный коммит, и если он выполняется последовательно, он помогает вам вернуться к предыдущей версии вашего кода, не ссылаясь на конкретные коммиты.

Сравнение коммитов

GitHub предлагает множество инструментов для работы с вашим кодом.

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

Подводя итог

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

Перевод статьи A developer’s introduction to GitHub от Digital Skynet :)

33
9 комментариев

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

3
Ответить

спасибо за статью, но зачем?

8
Ответить
Комментарий удалён модератором

github проприетарный, и принадлежит M$.
Переходим потихоньку на gitlab.

Ответить

Ну мелко-мягкие за последнее время изменили свой подход к опенсорсу и сообществу.
GitHub вообще никак не изменился за три месяца, и, по заверениям MS - не изменится.
Вопрос в другом... зачем эта статья здесь? ...хотя не хабр, и уже хорошо... :-D

3
Ответить

И почему нельзя использовать аналогичные платформы,такие как BitBucket или GitLab?

Зато на битбакете можно приватные репы бесплатно делать.

1
Ответить