Как мне объединить запрос на извлечение чужого проекта в git? - PullRequest
53 голосов
/ 05 апреля 2011

Я клонировал этот репо на моем компьютере: https://github.com/derobins/wmd.git

Хотя есть несколько ошибок с ним, и похоже, что другой пользователь исправил их и выдал «Запросы на извлечение» (я предполагаю, что это запросы на внесение изменений?)

Возможно ли объединить эти изменения в мою локальную версию?

РЕДАКТИРОВАТЬ: просто чтобы быть ясно, это не мой репозиторий. Я пользуюсь редактором WMD от derobins, но в нем есть несколько ошибок, которые эти исправления запрашивают для исправления. Я клонировал репозиторий в Ubuntu (не в github) и надеялся объединить эти изменения, если это возможно.

Ответы [ 3 ]

55 голосов
/ 05 апреля 2011

(GitHub имеет очень подробную документацию о том, как обрабатывать запросы на извлечение.)

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

git remote add helpful git://github.com/helpful-person/whatever.git

... затем извлеките их изменения в ветки удаленного отслеживания:

git fetch helpful

... так что теперь у вас есть все коммиты из GitHub этого человекахранилище в вашем клоне вышестоящего хранилища.Если вы посмотрите на дополнительные коммиты в этом запросе, вы можете:

  1. объединить последний, например, git merge 75708aeab5
  2. вишня выбрать каждое из этих изменений, например, git cherry-pick 2142db89,git cherry-pick 75708aeab5
  3. создать локальную ветвь для дальнейшей работы с ними, например, git checkout -b fix-for-issue3 75708aeab5
  4. и т. Д.и т. д.

В качестве альтернативы можно просто клонировать репозиторий участника, который вместо этого сделал запросы извлечения, если это то же самое, но для этих исправлений.

30 голосов
/ 28 октября 2013

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

git pull https://github.com/otheruser/repo.git branchname

Например, на момент написания, ghi имеет три запроса на открытие, которые небыл объединен еще.Это то, что я сделал, чтобы объединить их с моим локальным репо.

# I want to make sure my master is in sync with the upstream master
git checkout -b merge-patches master
# first pull request
git pull --no-ff https://github.com/TiddoLangerak/ghi.git master
# second pull request
git pull --no-ff https://github.com/wayfare/ghi.git master

Обратите внимание, что оба запроса на отправку были отправлены от мастера, поэтому я извлек их из их ветви master.

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

0 голосов
/ 05 апреля 2011

Вы клонируете репо на свою учетную запись github. Затем просто зайдите в папку вашего клонированного репо и выберите патчи, которые вы хотите объединить с вашим репозиторием.

...