Git 补丁patch

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hsl0530hsl/article/details/88622921

补丁patch

补丁并不是针对所有代码的修改,只是针对于局部的修改。
在代码的维护中,如果只修改一部分代码,需要将代码完整的克隆下来,可是修改的只是很小的一部分;在这种情况下可以将一些代码的补丁信息发送给开发者,开发者收到之后知道那些代码被修改了,这样就可以使用一个极低的开销实现代码的修改操作

在git中提供了两种补丁方式

  1. 使用git diff生成标准的patch
  2. 使用git format-patch声明git专用的patch
1. Git diff生产标准的patch

A 贡献者

  1. 创建一个testPatchDiff分支
  2. 在testPatchDiff分支上进行代码修改
  3. 使用git diff xx 查看修改
  4. 在testPatchDiff分支上进行提交
  5. 使用git diff master> testDiff创建补丁信息testDiff
  6. 删除testPatchDiff分支

B 开发者

  1. cat testDiff查看有哪些修改
  2. 切换到master分支
  3. 创建一个新的applyPatchDiff分支
  4. 使用git apply testDiff 应用补丁信息testDiff
  5. 在applyPatchDiff分支上进行提交补丁操作
  6. 切换回master分支合并applyPatchDiff分支
  7. 删除applyPatchDiff分支
2. git format-patch声明git专用的patch

A 贡献者

  1. 创建一个testPatchFormat分支
  2. 在testPatchFormat分支上进行代码修改
  3. 使用git diff xx 查看修改
  4. 在testPatchFormat分支上进行提交
  5. 使用git format-patch master与原始代码做一个比较,比较之后会自动生成补丁文件
  6. 删除testPatchFormat分支

B 开发者

  1. cat 0001-testPathcFormat.patch查看有哪些修改(像是一封邮件,可以将文件粘贴 进电子邮件客户端,也可以通过命令行git send-email发送它)
  2. 切换到master分支
  3. 创建一个新的applyPatchFormat分支
  4. 使用git am 0001-testPathcFormat.patch应用补丁信息
  5. 切换回master分支合并applyPatchDiff分支
  6. 删除applyPatchFormat分支

补丁两种方式比较

git diff生成的Patch兼容性强。如果你修改的代码不是Git管理的版本库,那么必须使用git diff生成的patch才能让你的代码被项目的维护人接受。

但是如果你是向公共的开发社区进行代码的补丁更正,建议使用git format-patch,这样不仅标准,而且也可以将作者的信息公布

猜你喜欢

转载自blog.csdn.net/hsl0530hsl/article/details/88622921
今日推荐