将github提交/拉取请求应用为补丁

pro*_*eek 4 git github git-patch pull-request

如何从github应用补丁?

我试着编译minisat,但是我遇到了两个来自clang编译的问题.

第一个问题是在这个github提交中解决的,它是从原来的github派生出来的.由于变化很小,我可以轻松地修补代码以手动工作.

第二个问题在这个github(https://github.com/niklasso/minisat/pull/17)中解决,但补丁不适用于原始源.我可以通过复制修改后的文件手动更新代码,但如果我可以将此补丁拉入我的本地目录会更好.用github可以做到吗?如果是这样,怎么办?

mu *_*u 無 12

github为各个提交和拉取请求提供补丁(虽然我找不到相关文档).

您只需附加.patch到原始网址的末尾即可生成修补程序网址.

因此,请使用https://github.com/JWalker1995/minisat/commit/a8cef9d932552b2ec155d5e0d44d8fe0efa3a235.patch作为第一个,并使用https://github.com/niklasso/minisat/pull/17.patch作为第二个.

通用URL github.com/original/url/id将github.com/original/url/id.patch用于生成补丁.

就运行命令而言,这就变成了

  1. 将补丁下载到您的git仓库

    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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 应用补丁

    git apply issue1.patch
    
    Run Code Online (Sandbox Code Playgroud)

    检查更改,添加和提交.对补丁2重复相同的操作.

您可以查看此博客文章,获取有关创建和应用修补程序的精彩教程.

  • @prosseek,转到`https:// github.com/JWalker1995/minisat/commit/a8cef9d932552b2ec155d5e0d44d8fe0efa3a235.patch`并将内容保存为`1.patch`,然后转到`https://github.com/niklasso/minisat/pull/17.patch`并将内容保存为`2.patch`.之后运行`git apply --check 1.patch`和`git apply --check 2.patch`.如果你在运行`git apply 1.patch`然后`git apply 2.patch`来修改你的文件时没有出现任何错误. (2认同)