it-roy-ru.com

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

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

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

553
stevebot

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

  1. Открытый запрос на извлечение
  2. Внесите изменения на основе обратной связи в вашем локальном репо
  3. Нажмите на соответствующую ветку вашей вилки

Пул-запрос автоматически добавит новые коммиты внизу обсуждения пул-запроса (т. Е. он уже есть, прокрутите вниз!)

539
shelhamer

Обновление pull-запроса в 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

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


Ссылки по теме о перебазировании:

74
jmu

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

31
igorw

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

  1. git reset --hard <commit key of the pull request>
  2. Сделали ли мои изменения в коде, который я хотел сделать
  3. git add
  4. git commit --amend
  5. git Push -f Origin <name of the remote branch of pull request>
10
VicJordan

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

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

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

3
AaronLS