Таким образом, вы наткнулись на проект в GitHub и хотели бы внести свой вклад в этот проект. Но как? Вы не считаете себя разработчиком, и терминология контроля версий вам непонятна. Не волнуйтесь. Ответ – это запрос на вытягивание (PR) в Git.
В этом учебнике вы узнаете, как внести свой вклад в проект GitHub с помощью запроса на вытягивание Git, чтобы разместить свой код в репозитории GitHub (репо).
Внесение вклада в проект GitHub
К настоящему моменту вы, вероятно, видели хотя бы один проект GitHub, в котором вы чувствуете, что могли бы помочь исправить ошибки, обновить документацию или добавить новую функцию. Вы хотите внести свой вклад, но, как и многие другие ИТ-специалисты, вы не считаете себя разработчиком программного обеспечения.
Git и GitHub традиционно находились в разработке. Но с тем, как все больше и больше инфраструктуры переходит в облако и появляются инструменты Инфраструктура как код, системные администраторы все больше исследуют GitHub.
Многие ИТ-специалисты не знают, с чего начать. Поэтому в этой статье вы с нуля узнаете, как внести свой код в существующий проект GitHub с помощью запросов на вытягивание.
Что такое запрос на вытягивание?
Когда у вас есть код/исправление, которое добавит больше функциональности или принесет большую ценность существующему проекту или репозиторию в GitHub, вы можете создать запрос на вытягивание.
Хотя запрос на объединение – это одно действие, конечный результат (внесение вашего кода в репозиторий кого-то еще на GitHub) включает пять грубых этапов, которые вы изучите в этом руководстве.
1. Клонирование или “копирование” оригинального репозитория в свой аккаунт GitHub
Термин “клонирование” иногда путают с термином “клонирование”. Git и GitHub – это два отдельных продукта. “Клонирование” – это термин GitHub, который создает реплику репозитория GitHub на GitHub. “Клонирование” – это термин Git, который относится к созданию локального репозитория Git на вашем компьютере путем загрузки удаленного репозитория Git.
2. Фиксация кода в нашем личном клонированном репозитории и отправка этого кода в репозиторий GitHub
3. Подача запроса на объединение владельцу репозитория
4. Просмотр и утверждение владельцем репозитория ваших изменений в запросе на объединение
5. Объединение владельцем репозитория ваших изменений в основную ветку
Необходимые условия
Для следования демонстрациям в этом руководстве убедитесь, что у вас есть следующее:
- A GitHub account
- A GitHub repo to request changes to – This tutorial will use a repo called git-pull-requests.
- Git – В этом руководстве будет использоваться Git в Windows в рабочем каталоге C:\Git.
- Git настройка для работы с вашей учетной записью GitHub
Форк репозитория GitHub
Поскольку вы не можете вносить прямые изменения в репозиторий GitHub другого пользователя, сначала вам нужно создать свой собственный. Для этого вам нужно сделать форк или копию репозитория в своей учетной записи GitHub. Чтобы сделать это:
1. Откройте ваш любимый веб-браузер, перейдите на GitHub и войдите в систему.
2. Перейдите в репозиторий учебного пособия или репозиторий, к которому вы хотите внести вклад, как показано ниже.

3. В правом верхнем углу нажмите кнопку Форк. Эта кнопка автоматически создаст копию этого репозитория в вашей учетной записи.

После форка вы должны увидеть тот же репозиторий в списке ваших репозиториев. Вы также можете видеть ниже, что этот репозиторий был сделан форк от Adam-the-Automator\git-pull-requests.

Коммит нового кода в ваш персональный форк
Теперь, когда у вас есть своя собственная копия репозитория в вашей учетной записи GitHub, пришло время внести изменения. Вы можете вносить изменения в код репозитория GitHub одним из двух способов: либо напрямую через github.com, либо локально через Git. Давайте рассмотрим оба способа.
Коммит кода через github.com
Самый простой способ внесения изменений в код в репозитории GitHub – это просто использовать веб-браузер. Используя github.com, вам не нужно беспокоиться о настройке какого-либо программного обеспечения локально. Но использование веб-браузера скоро превратится в головную боль, если вам потребуется выполнить какие-либо достаточно сложные изменения.
Предполагая, что вы все еще просматриваете разветвленный репозиторий в своем браузере:
1. Нажмите на скрипт SampleText.ps1 в вашем разветвленном репозитории и щелкните по иконке карандаша, чтобы отредактировать его.

2. Внесите изменения в файл и нажмите кнопку Фиксация изменений, как показано ниже, при необходимости добавив сообщение о фиксации.

Фиксация кода с помощью Git
Если вы планируете внести более одного простого изменения в файл в репозитории GitHub, вам следует использовать Git. Git позволяет клонировать весь репозиторий на ваш компьютер и работать над кодом в вашем любимом редакторе кода.
Клонирование
Чтобы работать с кодом разветвленного репозитория локально, сначала вам нужно склонировать весь репозиторий на ваш компьютер с помощью Git. Для этого:
Предполагая, что вы все еще находитесь в своем разветвленном репозитории на github.com:
1. Нажмите на кнопку Code и скопируйте URL из раздела HTTPS.

2. Затем откройте консоль командной строки на вашем компьютере. В этом уроке будет использоваться Windows PowerShell.
3. Создайте каталог для хранения клонированного репозитория и запустите git clone
, указав URL, скопированный на предыдущем этапе.

Фиксация и отправка локальных файлов
После того как вы склонировали репозиторий Git, пришло время изменить файл и зафиксировать эти изменения в репозитории. Для этого:
1. Откройте ваш любимый редактор кода, отредактируйте и сохраните скрипт C:\SampleText.ps1.
2. В окне терминала убедитесь, что ваш рабочий каталог – C:\Git, и выполните следующую команду. Команда git add
добавляет файл в локальный репозиторий Git, но не сохраняет его. Она просто начинает отслеживание.
3. Затем зафиксируйте или сохраните все отслеживаемые файлы в репозитории Git с помощью команды git commit
. Обязательно включите объяснение внесенных изменений (сообщение о фиксации) с параметром -m
.

4. Теперь, когда локальный репозиторий Git содержит измененный файл, отправьте это изменение в репозиторий GitHub с помощью команды g
it push
. Вам должен появиться запрос, чтобы ввести ваше имя пользователя и пароль GitHub для аутентификации на вашем клонированном репозитории GitHub.
5. После того как вы введете ваше имя пользователя и пароль GitHub, вы должны увидеть информацию о состоянии Git, как показано ниже.

Подача запроса на вытягивание
В данный момент у вас есть копия репозитория GitHub, к которому вы хотели бы внести вклад (ответвленную) в своем аккаунте GitHub с изменениями, которые вы хотели бы предложить владельцу репозитория GitHub. Теперь наступило время отправить запрос на объединение (pull request), чтобы попросить владельца принять ваши изменения.
1. Перейдите на свой ответвленный репозиторий на GitHub.
2. Нажмите на Запросы на объединение и Новый запрос на объединение, как показано ниже.

3. На странице запроса на объединение вы увидите два репозитория, которые будут сравниваться, и каждый коммит, который вы запрашиваете для объединения в репозиторий владельца GitHub. Нажмите на Создать запрос на объединение.

4. Укажите заголовок для запроса на объединение и нажмите Создать запрос на объединение.

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

На этом этапе владелец может предоставить вам комментарии, где вы можете сотрудничать по запросу на объединение. Или он может сразу же объединить его, нажав на Объединить запрос на объединение.
После объединения запроса на объединение с исходным кодом, запрос на объединение перейдет в статус Объединено, и код будет объединен с исходным репозиторием!

Теперь вы видите, что вы стали участником файла, который вы изменили и который был объединен.

Заключение
В этом руководстве вы узнали каждый шаг того, как создать запрос на выгрузку Git. Pull-запросы – отличный способ сотрудничества в репозиториях GitHub.
Теперь, когда вы знаете, как вносить вклад в проекты GitHub, к какому репозиторию вы собираетесь внести свой вклад?