Git Patch使用帮助

多人协作开发,需要将别人开发的代码合并。这时使用git patch命令合并是最方便。下面介绍这种方法。

git patch作用

  • 什么是patch? 简单来讲,patch中存储的是你对代码的修改
  • 什么是生成patch? 生成patch就是记录你对代码的修改并将其保存在patch文件中
  • 什么是打patch? 打patch就是将patch文件中对代码的修改,应用到源代码,从而把对代码的修改应用到code中。

git patch用法

生成patch

1
2
3
4
5
6
7
8
$ git format-patch HEAD^    #生成最近的1次commit的patch
$ git format-patch HEAD^^   #生成最近的2次commit的patch
$ git format-patch HEAD^^^   #生成最近的3次commit的patch
$ git format-patch HEAD^^^^   #生成最近的4次commit的patch
$ git format-patch <r1>..<r2> #生成两个commit间的修改的patch(包含两个commit. <r1>和<r2>都是具体的commit号)
$ git format-patch -1 <r1> #生成单个commit的patch
$ git format-patch <r1> #生成某commit以来的修改patch(不包含该commit)
$ git format-patch --root <r1> #生成从根到r1提交的所有patch

应用patch

检查patch/diff是否能正常打入:

1
2
git apply --check 【path/to/xxx.patch】
git apply --check 【path/to/xxx.diff】

打入patch/diff:

1
2
3
git apply 【path/to/xxx.patch】
git apply 【path/to/xxx.diff】
git am 【path/to/xxx.patch】

TortoiseGit patch用法

TortoiseGit是一个Git版本控制客户端,作为Microsoft Windows的外壳扩展实现。它在GNU通用公共许可协议下作为自由软件发布。使用TortoiseGit 的 Create Patch Serial和 Apply Patch Serial两个菜单可以很方便的产生和应用补丁。

参考链接

  1. TortoiseGit,by wikipedia.
  2. 如何用git命令生成Patch和打Patch,by 青山牧云人.
  3. Git 打补丁– patch 和 diff 的使用(详细),by alanwangmodify.