Как объединить запрос на вытягивание в чужом проекте в git?


я клонировал это РЕПО на своем компьютере:https://github.com/derobins/wmd.git

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

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

EDIT: просто чтобы быть ясным, это не мой репозиторий. Я использую редактор WMD от derobins, но у него есть несколько ошибок, которые эти запросы pull предполагают исправить. Я клонировал РЕПО на Ubuntu (не в github) и надеялся объединить эти изменения, если это возможно.

3   51   2011-04-05 18:05:16

3 ответа:

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

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

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. etc. так далее.

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

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

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 филиала.

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

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