Apply github commit / pull request as a patch

假如想象 提交于 2019-12-23 15:14:54

问题


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

  1. 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
    
  2. 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

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