×

git中patch的用法

96
元亨利贞o
2016.04.25 16:59* 字数 247

编程中有代码重用的概念, 那么git中同样也有这个概念.
那么接下来就说说git中的 重用提交(reuse commit).
git中重用提交的方式有两种, 一种是cherry-pick, 另一种便是patch.
关于cherry-pick的用法可以参考我的git cherry-pick用法, 这一篇就来说说git patch的用法.


  1. 生成patch文件:
    git format-patch <old-commit-sha>...<new-commit-sha> -o <patch-file-dir>
    如:
git format-patch 0f500e44965c2ed502b1d35b6d4d3926ac449c05...d37885d260bb228f00739c1bceea888a8841d48b -o ~/temp_patch/

生成文件/Users/stone/temp_patch/0001-add-content-to-bb.c.patch
查看commit-has: git loggit log -p (有详细的更改内容)

  1. 测试patch文件:

    • 检查patch文件
      git apply --stat ~/temp_patch/0001-add-content-to-bb.c.patch

    • 查看是否能应用成功
      git apply --check ~/temp_patch/0001-add-content-to-bb.c.patch

  2. 应用patch文件
    git am -s < ~/temp_patch/0001-add-content-to-bb.c.patch


很容看出patch和cherry-pick的功能都是重用commit,
功效几乎一样, 但是cherry-pick更为简单.

更多git用法请参考: Pro Git(en), Prop Git(zh)

git
Web note ad 1