How to apply a git patch when given a pull number

拟墨画扇 提交于 2019-12-18 10:07:51

问题


I downloaded a trunk version of a codebase from git, and there are build errors. Aparently a patch is now available, and I received an email :

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

I am new to git so I'm not quite sure what to do with this 'patch' especially, since the page looks more like a discussion thread.

Does anyone know how I can obtain/apply this patch to my locally cloned git repository?


回答1:


Save the patch somewhere. If you're using linux you can use curl:

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

To apply the patch use git apply. You can see if the patch will apply cleanly with the check option. Change to your git directory and run:

git apply --check /tmp/47.patch

If it looks like you want to apply the patch remove the check option

git apply /tmp/47.patch



回答2:


Just add a .patch at the end to get the patch:

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

You can do something like below:

$ 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:


The rule seems recently changed.

Previously we took a PR and add a .patch at the end to get the patch

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

But now the link is redirect(301) to

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

So if you use curl, you could pipe with git apply command to apply a git patch from the Pull Request

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

If the patch is not right for you now, use git apply -R command to rollback the change.




回答4:


To let git download pull request 47 and patch it into mylocalbranch locally, run:

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

If the pull request isn't on the origin repo, run

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



回答5:


git fetch -q origin +refs/pull/47/merge:
git checkout -qf FETCH_HEAD


来源:https://stackoverflow.com/questions/7827002/how-to-apply-a-git-patch-when-given-a-pull-number

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!