Подтвердить что ты не робот

Как слить запрос на перенос на чужой проект в git?

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

git fetch helpful

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

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

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

Ответ 2

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

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.

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

Ответ 3

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