Как применить Git-патч при получении номера - PullRequest
37 голосов
/ 19 октября 2011

Я загрузил транковую версию кодовой базы из git, и есть ошибки сборки.По-видимому, теперь доступен патч, и я получил электронное письмо:

см. https://github.com/JustinTulloss/zeromq.node/pull/47 для патча

Я новичок в git, поэтому я не совсем уверен, что делать с этим патчем'особенно, поскольку страница больше похожа на ветку обсуждения.

Кто-нибудь знает, как я могу получить / применить этот патч к своему локально клонированному репозиторию git?

Ответы [ 5 ]

68 голосов
/ 19 октября 2011

Сохраните патч где-нибудь.Если вы используете Linux, вы можете использовать curl:

curl -L https://github.com/JustinTulloss/zeromq.node/pull/47.patch > /tmp/47.patch

Чтобы применить патч, используйте git apply.Вы можете увидеть, будет ли патч применяться корректно с опцией check.Перейдите в каталог git и запустите:

git apply --check /tmp/47.patch

Если похоже, что вы хотите применить исправление, снимите флажок

git apply /tmp/47.patch
16 голосов
/ 19 октября 2011

Просто добавьте .patch в конце, чтобы получить патч:

https://github.com/JustinTulloss/zeromq.node/pull/47.patch

Вы можете сделать что-то вроде ниже:

$ git checkout master
$ curl http://github.com/JustinTulloss/zeromq.node/pull/47.patch | git am
$ git push origin master

http://help.github.com/send-pull-requests/

7 голосов
/ 18 июня 2015

Правило кажется недавно измененным.

Ранее мы взяли PR и добавили .patch в конце, чтобы получить патч

http://github.com/[group]/[project]/pull/30583.patch

Но теперь ссылка перенаправлена ​​(301) на

https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch

Так что, если вы используете curl, вы можете использовать конвейер с помощью команды git apply, чтобы применить git-патч из запроса на извлечение

curl https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch | git apply

Если патч вам сейчас не подходит, используйте команду git apply -R для отката изменения.

3 голосов
/ 25 февраля 2016
git fetch -q origin +refs/pull/47/merge:
git checkout -qf FETCH_HEAD
3 голосов
/ 06 февраля 2016

Чтобы позволить git скачать запрос на извлечение 47 и подключить его к mylocalbranch локально, запустите:

git checkout -b mylocalbranch
git pull origin pull/47/head

Если запрос на извлечение не находится в исходном репо, запустите

git remote add patchremote https://github.com/JustinTulloss/zeromq.node
git pull patchremote pull/47/head
...