Как обновить запрос на извлечение из разветвленного репо?

Итак, я сначала разветкил репо, а затем сделал фиксацию этого разветвленного репо. Затем я открыл запрос на перенос. В запросе на вытягивание перечислены все изменения, которые я хотел.

После рассмотрения моего запроса на тягу произошел ряд изменений, которые владелец репо хотел, чтобы я сделал, прежде чем он принял его. Я сделал эти изменения в своей вилке, теперь как мне обновить запрос на перенос с этими изменениями (или это не так, как я должен его обработать)?

Ответ 1

Вы сделали это правильно. Запрос на перенос будет автоматически обновляться. Процесс:

  • Открытый запрос pull
  • Зафиксировать изменения на основе отзывов в вашем локальном репо
  • Нажмите на соответствующую ветку вилки

Запрос на перенос автоматически добавит новые коммиты в нижней части обсуждения запроса на растяжение (т.е. он уже существует, прокрутите вниз!)

Ответ 2

Обновление запроса на перенос в GitHub так же просто, как передача требуемых изменений в существующую ветку (которая использовалась с запросом на pull), но часто также требуется выдать изменения в одиночную фиксацию:

git checkout yourbranch
git rebase -i origin/master

# Edit command names accordingly
  pick   1fc6c95 My pull request
  squash 6b2481b Hack hack - will be discarded
  squash dd1475d Also discarded

git push -f origin yourbranch

... и теперь запрос на pull содержит только одно коммит.


Ссылки по теме:

Ответ 3

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

Ответ 4

Я сделал это, используя следующие шаги:

  • git reset --hard <commit key of the pull request>
  • Были ли изменения в коде, которые я хотел сделать
  • git add
  • git commit --amend
  • git push -f origin <name of the remote branch of pull request>

Ответ 5

При использовании GitHub в Windows:

  • Внести изменения локально.
  • Откройте GitHub, переключитесь на локальные репозитории, дважды щелкните репозиторий.
  • Переключите ветку (около верхней части окна) в ветку, из которой вы создали запрос на извлечение (например, ветвь на стороне вашего вилка сравнения).
  • Должен увидеть, как вводить комментарий коммита справа и фиксировать изменения в локальном репо.
  • Нажмите "Синхронизировать сверху", что, среди прочего, выталкивает вашу фиксацию из локальной в вашу удаленную вилку на GitHub.
  • Запрос на перенос будет автоматически обновляться с помощью дополнительных коммитов. Это связано с тем, что вытащенный запрос представляет собой разницу с веткой вилки. Если вы перейдете на страницу запроса на тягу (тот, где вы и другие можете прокомментировать ваш запрос на перенос), на вкладке "Коммиты" должны быть ваши дополнительные фиксации.

Вот почему, прежде чем приступать к собственным изменениям, вы должны создать ветвь для каждого набора изменений, которые вы планируете вставить в запрос на вытягивание. Таким образом, как только вы сделаете запрос на вытягивание, вы сможете сделать еще одну ветку и продолжить работу над некоторыми другими задачами/функциями/исправлениями, не затрагивая предыдущий запрос на pull.