27-12-2018 22:45

Создание Pull Request в Git

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

  • Хранит историю разработки.
  • Контролирует права доступа к совместному коду.
  • Обеспечивает контроль версий программного продукта.

Git система

Логический тип данных в информатикеВам будет интересно:Логический тип данных в информатике

Git разработан Линусом Торвальдсом с целью упростить создание ядра Linux. Существует несколько способов управления проектом через Git: можно использовать веб-сервисы, такие как GitHub, или скачать графический Git-клиент. Существует несколько бесплатных клиентов для любых операционных систем, например, SmartGit. Так как ядро Git — это пакет программ для командной строки, им также удобно пользоваться непосредственно из этой локации. Функционал будет одинаков как в работе с веб-сервисом, так и в графическом клиенте. Новичкам рекомендуется углубляться в изучение консольной версии - так гораздо быстрее придет понимание команд и внутренней структуры.

Десктопный клиент

Далее мы подробно разберем одну из команд Git - Pull Request.

Pull request — это предложение по изменению репозитория. Данный механизм используется в общей работе над программными продуктами. Позволяет скоординировать деятельность разработчиков и избежать путаницы. Любой, кто захочет изменить или доработать существующий проект, должен сделать следующие шаги.

Git: как сделать pull request

  • Команда Fork — создать локальную копию рабочего репозитория.
  • Доработать или изменить свою копию.
  • Команда Pull request — предложить изменения в коде владельцу репозитория.
  • Команда Merge — с помощью нее владелец репозитория одобряет изменения.
  • В системе Git pull request возможно создать двумя способами. Первый - через Git клиент, второй - используя возможности веб-сервиса, на котором расположен ваш репозиторий.

Веб-сервис Git: create pull request

Чтобы предложить владельцу репозитория изменения в проекте, необходимо:

  • Зайти в ветку, содержащую исходный файл.
  • Нажать New pull request.
  • Если изменения были сделаны — откроется окно Comparing changes.
  • В нем можно уточнить путь, из какой ветки какого репозитория и куда необходимо отправлять изменения.
  • Нажать Create pull request.
  • Желательно уточнить в соответствующих полях, какие изменения были сделаны.
  • Теперь владелец репозитория увидит во вкладке Pull requests уведомление об изменениях.

Владелец в свою очередь может выполнить в репозитории Git merge pull request. Это внесет изменения, предложенные разработчиком с основной веткой проекта.

Ветки разработки

Также довольно удобно использование консольного клиента Git. Pull Request делается через веб-сервис, ниже будет показан алгоритм внесения изменений в удаленный репозиторий. Для внесения изменений в удаленный репозиторий через консоль после коррекции кода необходимо вводить следующие команды:

  • Команда git add NewFile.cxx — добавляем новый файл в локальный репозиторий.
  • Команда git commit -a -m commit message - создаем коммит, в commit message уточняем изменения в проекте.
  • Команда git push origin — внесение изменений в удаленный репозиторий (необходимо подтвердить свои логин и пароль).
  • Далее необходимо также воспользоваться веб-версией Git, на которой хранится ваш удаленный репозиторий, и создать pull request, используя руководство выше.

Merge

В Git Merge pull request - это команда слияния ветки разработки feature с основной веткой (master). Существует два паттерна слияния:

  • Истинное слияние. Происходит, когда необходимо внести несколько изменений в основную ветку разработки. То есть в ветке master создается новый коммит, который ссылается на несколько таких же атрибутов из feature.
  • Перемотка. Если история коммитов получилась без ветвлений, то указатель master перематывается вперед, и устанавливается на тот, на который указывала ветка feature.

Паттерны разработки

Работа с Git

При работе с Git всегда важно помнить, что есть два репозитория - локальный и удаленный. Локальный создается на машине у разработчика после команды clone, к примеру, если разработчик хочет присоединиться к работе над проектом. То есть с системой контроля версий можно работать и без интернет-соединения, только команды pull и push потребуют связи с удаленным хранилищем. Локально в Git Pull request сделать, конечно же, невозможно.

Операция Pull совершает слияние, если истории удаленно и локально различаются.

Операция Push отправляет все изменения, который отсутствуют в удаленном репозитории. Если в удаленном репозитории оказываются новые коммиты, то операция закончится неудачей.

То есть локально у разработчика присутствует ветка master, которая представляет из себя последнее изменение, и ветка origin/master — это состояние удаленного репозитория после последней операции Pull или Push.



Источник