Вклад в проекты GitHub (Pull Request для чайников)

Таким образом, вы наткнулись на проект в 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. Объединение владельцем репозитория ваших изменений в основную ветку

Необходимые условия

Для следования демонстрациям в этом руководстве убедитесь, что у вас есть следующее:

Форк репозитория GitHub

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

1. Откройте ваш любимый веб-браузер, перейдите на GitHub и войдите в систему.

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

GitHub repository to fork

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

Forking a GitHub repo

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

Forked GitHub repo

Коммит нового кода в ваш персональный форк

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

Коммит кода через github.com

Самый простой способ внесения изменений в код в репозитории GitHub – это просто использовать веб-браузер. Используя github.com, вам не нужно беспокоиться о настройке какого-либо программного обеспечения локально. Но использование веб-браузера скоро превратится в головную боль, если вам потребуется выполнить какие-либо достаточно сложные изменения.

Предполагая, что вы все еще просматриваете разветвленный репозиторий в своем браузере:

1. Нажмите на скрипт SampleText.ps1 в вашем разветвленном репозитории и щелкните по иконке карандаша, чтобы отредактировать его.

Modifying code via GitHub

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

Committing changes via GitHub

Фиксация кода с помощью Git

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

Клонирование

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

Предполагая, что вы все еще находитесь в своем разветвленном репозитории на github.com:

1. Нажмите на кнопку Code и скопируйте URL из раздела HTTPS.

Finding the Git clone URL

2. Затем откройте консоль командной строки на вашем компьютере. В этом уроке будет использоваться Windows PowerShell.

3. Создайте каталог для хранения клонированного репозитория и запустите git clone, указав URL, скопированный на предыдущем этапе.

md C:\Git
 cd C:\Git
 git clone https://github.com/adbertram/git-pull-requests.git
Cloning a Git repo

Фиксация и отправка локальных файлов

После того как вы склонировали репозиторий Git, пришло время изменить файл и зафиксировать эти изменения в репозитории. Для этого:

1. Откройте ваш любимый редактор кода, отредактируйте и сохраните скрипт C:\SampleText.ps1.

2. В окне терминала убедитесь, что ваш рабочий каталог – C:\Git, и выполните следующую команду. Команда git add добавляет файл в локальный репозиторий Git, но не сохраняет его. Она просто начинает отслеживание.

cd C:\Git
 git add SampleText.ps1

3. Затем зафиксируйте или сохраните все отслеживаемые файлы в репозитории Git с помощью команды git commit. Обязательно включите объяснение внесенных изменений (сообщение о фиксации) с параметром -m.

git commit -m "modified sampletext file"
Committing changes

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

git push

5. После того как вы введете ваше имя пользователя и пароль GitHub, вы должны увидеть информацию о состоянии Git, как показано ниже.

Pushing Git commits

Подача запроса на вытягивание

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

1. Перейдите на свой ответвленный репозиторий на GitHub.

2. Нажмите на Запросы на объединение и Новый запрос на объединение, как показано ниже.

Creating a pull request

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

Creating a GitHub pull request

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

Opening a Git pull request

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

Просмотр и принятие запроса на объединение

Как только вы создадите запрос на объединение, он появится в разделе Запросы на объединение в исходном репозитории GitHub, как показано ниже.

Open pull request under the original GitHub repo

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

После объединения запроса на объединение с исходным кодом, запрос на объединение перейдет в статус Объединено, и код будет объединен с исходным репозиторием!

Merged pull request

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

Contributor on changed file

Заключение

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

Теперь, когда вы знаете, как вносить вклад в проекты GitHub, к какому репозиторию вы собираетесь внести свой вклад?

Source:
https://adamtheautomator.com/git-pull-request/