问题
How can I apply the patch from github?
I tried to compile minisat, but I came across two issues from the compilation with clang.
The first issue is solved in this github commit, it's forked from the original github. As the change is minute, I could easily patched the code to work manually.
The second issue is solved in this github (https://github.com/niklasso/minisat/pull/17), but the patch is not applied to the original source. I could manually update the code by copying the modified files, but it would be better if I can pull this patch into my local directory. Is it possible to do that with github? If so, how to do it?
回答1:
github provides patches for individual commits and pull requests (though I can't find the documentation for this).
You can generate the patch url by simply appending .patch
to the end of the original url.
So, use https://github.com/JWalker1995/minisat/commit/a8cef9d932552b2ec155d5e0d44d8fe0efa3a235.patch for the first, and https://github.com/niklasso/minisat/pull/17.patch for the second.
The general url github.com/original/url/id
would become github.com/original/url/id.patch
for generating the patch.
In terms of commands to run, this becomes
Download the patches to your git repo
wget --output-document=issue1.patch https://github.com/JWalker1995/minisat/commit/a8cef9d932552b2ec155d5e0d44d8fe0efa3a235.patch wget --output-document=issue2.patch https://github.com/niklasso/minisat/pull/17.patch
Apply the patches
git apply issue1.patch
Check the changes, add and commit. Repeat the same for patch 2.
You can check this blog post for a nice tutorial around creating and applying patches.
回答2:
You can fork the project and add the second one as second remote, Then you can merge the desired branches to your project.
git remote add remote2 git@github.com:niklasso/minisat.git
git fetch remote2
git merge remote2 master
and then the updated code will be merged to your project. Once the pull request will be applied to the original repo (Merged pull request) you will not see any changes since you will already have the commit id in your copy.
来源:https://stackoverflow.com/questions/28484186/apply-github-commit-pull-request-as-a-patch