Git format-patch用法
嘻嘻发布于2020-03-01
最后更新于2020年2月13日
浏览git-format-patch将提交导出为补丁文件,然后可以将其应用于另一个分支或克隆的存储库。补丁文件表示单个提交,Git在导入补丁文件时重新提交。
git-format-patch是将更改从一个存储库副本转移到另一个存储库副本的短流程中的第一步。当Git只在本地使用而没有远程存储库时,旧的方式是通过电子邮件将补丁互相发送。如果您只需要向某人提交一次提交,而不需要合并分支和随之而来的开销,那么这是非常方便的。
使用场景
- CodeReview
-
代码迁移
用法
- 创建patch
1.1 commit id(不填,为当前head)之前的提交# n指从sha1 id对应的commit开始算起n个提交。 $ git format-patch 【commit sha1 id】-n # eg $ git format-patch e948f6084f37ec4184ae45eca322698c1cf37e4e -2
1.2 某个提交的patch
$ git format-patch 【commit sha1 id】 -1 # eg $ git format-patch e948f6084f37ec4184ae45eca322698c1cf37e4e -1
1.3 某两次提交之间的所有patch
$ git format-patch 【commit sha1 id】..【commit sha1 id】 # eg $ git format-patch 2a2fb4539925bfa4a141fe492d9828d030f7c8a8..89aebfcc73bdac8054be1a242598610d8ed5f3c8
1.4 当前分支和某个分支差异的patch
$ git format-patch a_big_feature_branch
- 应用patch
2.1 检查patch能否正常应用
$ git apply --check 【path/to/xxx.patch】
2.2 应用patch
$ git apply 【path/to/xxx.patch】 # or $ git am 【path/to/xxx.patch】
- 创建patch