git中patch的用法
2016-04-25 本文已影响1790人
元亨利贞o
编程中有代码重用的概念, 那么git中同样也有这个概念.
那么接下来就说说git中的 重用提交(reuse commit)
.
git中重用提交的方式有两种, 一种是cherry-pick, 另一种便是patch.
关于cherry-pick的用法可以参考我的git cherry-pick用法, 这一篇就来说说git patch的用法.
- 生成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 log
或 git log -p
(有详细的更改内容)
-
测试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
-
-
应用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)