Введение в GitHub для разработчиков

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

Введение в GitHub

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

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

СОВЕТ. Если вы еще не знаете о Git, ознакомьтесь сРуководство по Git.

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

Почему GitHub?

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

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

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

Основные кодовые базы со временем мигрировали на Git из других систем управления версиями из-за его удобства, и GitHub исторически был хорошо позиционирован (и приложил много усилий для «победы») в сообществе открытого исходного кода.

Итак, сегодня, когда вы будете искать какую-либо библиотеку, вы в 99% случаев найдете ее на GitHub.

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

Проблемы с GitHub

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

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

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

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

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

Социальное кодирование

Несколько лет назад логотип GitHub содержал слоган «социальное кодирование».

Что это значило и актуально ли это до сих пор? Это определенно.

Следовать

С GitHubвы можете следить за разработчиками, перейдя в их профиль и нажав «подписаться».

Вы также можете подписаться на репозиторий, щелкнув значок «смотреть»На репо.

В обоих случаях активность будет отображаться на вашей панели управления. Ты не подписываешься, как в Твиттере, где ты видишь, что говорят люди, аты видишь, что люди делают.

Звезды

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

Крупные проекты могут иметь 70 000 и более звезд.

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

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

Вилка

Последний важный сетевой показатель проекта - количество форков.

Это ключ к тому, как работает GitHub, поскольку вилка является основой Pull Request (PR), предложения об изменении. Начиная с вашего репозитория, человек его разветвляет, вносит некоторые изменения, а затем создает PR, чтобы попросить вас объединить эти изменения.

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

Форк клонирует файлы проекта GitHub, но не клонирует какие-либо звездочки или выпуски исходного проекта.

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

Запросы на вытягивание

Прежде чем я представил, что такое запрос на слияние (PR)

Начиная с вашего репозитория, человек его разветвляет, вносит некоторые изменения, а затем создает PR, чтобы попросить вас объединить эти изменения.

У проекта могут быть сотни PR, как правило, чем популярнее проект, тем больше PR, как у проекта React:

React Pull Requests

После того, как человек отправит PR, простой процесс с использованием интерфейса GitHub, он должен быть рассмотрен основными разработчиками проекта.

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

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

Это значит, чтоне всегда PR принимается быстро, а такженет никакой гарантии, что PR будет принят.

В приведенном выше примере PR репо датируется 1,5 годами. И это происходит ввсепроекты.

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

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

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

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

Еще одно популярное средство управления проектами:вехи. На странице проблем вы можете назначить проблемы определенным этапам, которые могут быть целями выпуска.

Говоря о выпусках, GitHub улучшаетТег Gitфункциональность за счет введениярелизы.

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

Выпуск GitHub строится на основе тегов Git и представляет собой полную версию вашего кода вместе с zip-файлами, примечаниями к выпуску и двоичными активами, которые могут представлять полностью рабочую версию конечного продукта вашего кода.

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

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

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

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

GitHub позволяет сделать это с помощьюсравнить вид, просто добавь/compareк имени репо, например:https://github.com/facebook/react/compare

Compare View

Например, здесь я хочу сравнить последниеReact v15.xк последнемуv16.0.0-RCверсия, доступная на момент написания, чтобы проверить, что изменилось:

Compare React Versions

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

Веб-перехватчики и сервисы

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

Вебхуки

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

Когда происходит событие, GitHub отправляет запрос POST на URL-адрес, который мы сказали ему использовать.

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

Мы нажимаем на GitHub, GitHub сообщает серверу, который мы отправили, сервер получает данные с GitHub.

Услуги

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

Например, вы можете настроить средство запуска тестов для автоматического запуска тестов каждый раз, когда вы нажимаете новые коммиты, используяTravisCI.

Вы можете настроить непрерывную интеграцию, используяCircleCI.

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

Заключительные слова

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


Дополнительные руководства по git: