问题
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