Belov Solutions

Внесение вклада в проекты на GitHub: пошаговое руководство

Введение

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

Создание форков

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

Чтобы создать форк, перейдите на страницу проекта и нажмите кнопку «Fork» в правом верхнем углу. Через несколько секунд вы получите доступ к собственной копии с правами на запись.

Рабочий процесс с использованием GitHub

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

  1. Создайте форк проекта.
  2. Создайте тематическую ветку на основе ветки master.
  3. Сделайте коммиты с улучшениями.
  4. Отправьте ветку в свой форк.
  5. Откройте запрос на слияние.
  6. Обсудите изменения и внесите корректировки при необходимости.
  7. Владелец проекта примет или отклонит изменения.
  8. Синхронизируйте ветку master с оригинальным репозиторием.

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

Создание запроса на слияние

Пример: Анна нашла проект https://github.com/example/weather-app, простого веб-приложения для отображения погоды, где отсутствует отображение температуры в Цельсиях. Она решила добавить эту функцию. Процесс:

$ git clone https://github.com/annadov/weather-app
$ cd weather-app
$ git checkout -b add-celsius
$ sed -i 's/tempFahrenheit/tempFahrenheit + " (°C: " + (tempFahrenheit - 32) * 5/9 + "°C)"/' index.html
$ git diff --word-diff
$ git commit -a -m 'Add Celsius temperature conversion'
$ git push origin add-celsius

После этого на странице форка появится кнопка для создания Pull Request. Укажите информативное описание, например: «Добавлена конверсия температуры в Цельсии для улучшения юзабилити приложения.»

Обработка запроса на слияние

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

$ sed -i 's/(tempFahrenheit - 32) * 5/9/Math.round((tempFahrenheit - 32) * 5/9)/' index.html
$ git commit -a -m 'Round Celsius temperature to nearest integer'
$ git push origin add-celsius

GitHub автоматически обновит запрос, отмечая разрешение комментариев.

Синхронизация с исходным репозиторием

Если ваш форк отстает, синхронизируйте его. Пример для репозитория https://github.com/example/weather-app.git:

$ git checkout master
$ git pull https://github.com/example/weather-app.git
$ git push origin master

Для автоматизации добавьте удаленный репозиторий:

$ git remote add upstream https://github.com/example/weather-app.git
$ git fetch upstream
$ git branch --set-upstream-to=upstream/master master
$ git config --local remote.pushDefault origin
$ git pull
$ git push

Это упрощает обновление, но избегайте коммитов в master, чтобы избежать конфликтов.

Продвинутые приёмы

Используйте перекрёстные ссылки (# или username/repo#) для ссылок на запросы или коммиты. Добавляйте списки задач (например, — [ ] Test code) и отрывки кода («`java … «`) для структурирования. GitHub-разметка поддерживает цитаты (> текст) и смайлики (::).

Заключение

Внесение вклада в проекты на GitHub — это доступный процесс благодаря форкам и Pull Requests.

Отзывы

Оставить отзыв

Ваша эл. почта не будет опубликована