Spec-Zone.ru › Ansible 2.4

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

Возможно, ваш запрос на вытягивание (PR) устарел и требует перебазирования. Это может произойти по нескольким причинам:

  • Измененные в вашем PR файлы конфликтуют с изменениями, которые уже были объединены.
  • Ваш PR достаточно старый, чтобы произошли значительные изменения в инфраструктуре автоматических тестов.

Перебазирование ветви, используемой для создания вашего PR, решит обе эти проблемы.

Настройка ваших удаленных репозиториев

Прежде чем вы сможете перебазировать свой PR, необходимо убедиться, что у вас настроены правильные удаленные репозитории. Предполагая, что вы клонировали свою вилку стандартным способом, удаленный репозиторий origin указывает на вашу вилку:

$ git remote -v
origin  git@github.com:YOUR_GITHUB_USERNAME/ansible.git (fetch)
origin  git@github.com:YOUR_GITHUB_USERNAME/ansible.git (push)

Однако, вам также нужно добавить удаленный репозиторий, который указывает на исходный репозиторий:

$ git remote add upstream https://github.com/ansible/ansible.git

В результате у вас должны быть следующие удаленные репозитории:

$ git remote -v
origin  git@github.com:YOUR_GITHUB_USERNAME/ansible.git (fetch)
origin  git@github.com:YOUR_GITHUB_USERNAME/ansible.git (push)
upstream        https://github.com/ansible/ansible.git (fetch)
upstream        https://github.com/ansible/ansible.git (push)

Проверка статуса вашей ветки должна показать, что она обновлена до вашей вилки в удаленном репозитории origin:

$ git status
On branch YOUR_BRANCH
Your branch is up-to-date with 'origin/YOUR_BRANCH'.
nothing to commit, working tree clean

Перебазирование вашей ветки

После настройки удаленного репозитория upstream, вы можете перебазировать ветку для своего PR:

$ git pull --rebase upstream devel

Это позволит повторно применить изменения в вашей ветке поверх изменений, внесенных в ветку исходного репозитория devel. Если возникнут конфликты слияния, вам будет предложено их разрешить, прежде чем вы сможете продолжить.

После перебазирования статус вашей ветки изменится:

$ git status
On branch YOUR_BRANCH
Your branch and 'origin/YOUR_BRANCH' have diverged,
and have 4 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean

Не беспокойтесь, это нормально после перебазирования. Вы можете игнорировать инструкции git status по использованию git pull. Мы рассмотрим, что делать дальше, в следующем разделе.

Обновление вашего запроса на вытягивание

Теперь, когда вы перебазировали свою ветку, необходимо отправить ваши изменения на GitHub, чтобы обновить ваш PR.

Поскольку перебазирование переписывает историю git, вам необходимо использовать форсированное обновление:

$ git push --force

Ваш PR на GitHub теперь обновлён. Это автоматически запустит тестирование ваших изменений. Вы должны проверить статус вашего PR после завершения тестов, чтобы определить, требуются ли дальнейшие изменения.

Получение помощи с перебазированием

Для получения помощи с перебазированием вашего PR или других вопросов, связанных с разработкой, присоединяйтесь к нашему чату #ansible-devel на IRC на freenode.net.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/dev_guide/developing_rebasing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API