Как обновить запрос на извлечение из разветвленного репо?
Итак, я сначала разветкил репо, а затем сделал фиксацию этого разветвленного репо. Затем я открыл запрос на перенос. В запросе на вытягивание перечислены все изменения, которые я хотел.
После рассмотрения моего запроса на тягу произошел ряд изменений, которые владелец репо хотел, чтобы я сделал, прежде чем он принял его. Я сделал эти изменения в своей вилке, теперь как мне обновить запрос на перенос с этими изменениями (или это не так, как я должен его обработать)?
Ответы
Ответ 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.
Ответ 6
Azure DevOps
Вот скрипт, который обрабатывает это для PR AzOv DevOps. Я использовал это, пока не обнаружил, что они добавили триггер PR, который связывает это с вами.
https://github.com/drGarbinsky/prstatusupdate/blob/master/UpadatePrStatus.ps1