Как применить патч git, если задан номер тяги
Я загрузил версию trunk для базы данных из git, и есть ошибки сборки. По-видимому, теперь доступен патч, и я получил электронное письмо:
см. https://github.com/JustinTulloss/zeromq.node/pull/47 для патча
Я новичок в git, поэтому я не совсем уверен, что делать с этим "патчем", особенно потому, что страница больше похожа на дискуссионный поток.
Кто-нибудь знает, как я могу получить/применить этот патч к локально клонированному репозиторию git?
Ответы
Ответ 1
Сохраните патч где-нибудь. Если вы используете 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
Ответ 2
Просто добавьте .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/
Ответ 3
Теперь правило изменилось.
Ранее мы взяли 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 из запроса Pull
curl https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch | git apply
Если исправление не подходит вам сейчас, используйте команду git apply -R
для отложенного изменения.
Ответ 4
git fetch -q origin +refs/pull/47/merge:
git checkout -qf FETCH_HEAD
Ответ 5
Чтобы git загрузить запрос на загрузку 47 и поместить его в mylocalbranch
локально, запустите:
git checkout -b mylocalbranch
git pull origin pull/47/head
Если запрос pull не находится в репо-источнике, запустите
git remote add patchremote https://github.com/JustinTulloss/zeromq.node
git pull patchremote pull/47/head