read

Допустим используете Вы какой-то open source проект и он Вам в общем-то нравится. Но в один прекрасный момент, после очередного обновления понимаете “что-то работает не так” или какой-то прекрасной функции вдруг не стало.

Так было у меня. Мне нравится Ghost как платформа для блога. Использую я его практически в своём коробочном состоянии и со стандартной темой Casper. Была у меня версия 0.5.8 и вот решился обновиться до 0.5.10, почему бы нет? После обновления заметил одну вещь, раньше у меня была прекрасная кнопка Subscribe справа вверху, теперь её нет. Оказалось в очередном обновлении разработчики решили добавить навигационное меню, а кнопку с подпиской перенести в недра этого самого меню. Назревает один вопрос. Мне совсем(или пока) не нужно это меню, но мне нужна кнопка, как быть? Иду на GitHub репозиторий темы и пишу в issues мол “верните пожалуйста классную кнопку Subscribe в случае если не используется меню. Отправляю. Через пять минут приходит ответ в духе “звучит разумно, PR welcome”. Что означает либо делай сам, либо жди пока сделают другие. Пробуем сделать сами.

Что вообще есть pull request? Это обычный запрос на внесение изменений в репозиторий. Значит нам надо сделать эти изменения и отправить измененные файлы как request.

Вариантов для pull request есть два(с созданием fork и без него). Рассмотрим тот что предполагает fork(т.е. создание копии репозитория для себя).

Зайдя на github идём в нужный репозиторий, открываем его и тыкаем fork. Немного ожидания и для нашего аккаунта будет создана копия, которую можно использовать и вносить изменения как душе угодно.

Открываем в системе git bash. Переходим в каталог где будем творить(cd <dir>) и делаем клонирование:

git clone git@github.com:username/some-repo.git

Далее переходим в созданный каталог с проектом и делаем отдельную ветвь для будущих изменений, назовем её some-changes:

cd some-repo

git checkout -b some-changes

Далее редактируем все файлы которые требуется. Смотрим статус:

git status

Получаем список изменных файлов.

После чего делаем commit:

git commit -a

Откроется окно редактора(скорее всего vim) где надо будет написать сообщение об внесенных изменениях. Пишем вменяемый заголовок и ниже коротко что изменили. После того как все написали жмем ESC и потом :wq чтобы сохранить текст.

Далее осталось только сделать push в нашу ветвь some-changes:

git push origin some-changes

После чего опять идём на github, на этот раз в наш fork и жмем зеленую кнопку. Потребуется указать куда мы хотим внести изменения и откуда. Справа должна быть выставлена наша fork и наша ветка с изменения. Внизу будет список изменений и сообщение для отправки запроса. Опять пишем внятный заголовок, подробное описание, при желании можно добавить изображения и дополнительные файлы. После чего можно отправлять.

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

Blog Logo

Keiga


Published

Image

Imagine Any Title Here

Personal notes about video games and other stuff

Back to Overview