git生成及应用补丁

简述

git补丁是对代码库的改动的一种表述形式,它可以帮助你将代码库的修改分享给其他人,而不需要对整个代码库进行复制。

补丁生成

git diff

使用 git diff 命令可以生成补丁。例如,如果你想创建一个包含最后一次提交改动的补丁文件,你可以使用以下命令:

git diff HEAD^..HEAD > mypatch.patch

上述命令会将最后一次提交(HEAD)与倒数第二次提交(HEAD^)之间的改动输出到名为 mypatch.patch 的文件中。

同样,你也可以为特定的文件或者目录生成补丁:

git diff > patchfile        # 生成工作区和暂存区间的改动
git diff --cached > patchfile   # 生成暂存区和最近提交间的改动
git diff HEAD > patchfile   # 生成工作区和最近提交间的改动
git diff test.py > test.patch  # 生成test.py文件的改动

git show

这个命令可以用来显示某个提交的补丁。
例如,你可以使用以下命令来输出特定提交的补丁:

git show COMMIT > patch

git format-patch

git format-patch命令也可以生成补丁文件。与git diff稍有不同,git format-patch命令生成的补丁文件包含提交信息,作者,提交日期等更多信息,而且每一个提交都会生成一个单独的补丁文件。

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(生成的patch不包含r1. <r1>和<r2>都是具体的commit号)
git format-patch -1 <r1>     #生成单个commit的patch
git format-patch <r1>        #生成某commit以来的修改patch(不包含该commit)
git format-patch --root <r1> #生成从根到r1提交的所有patch

应用补丁

git apply

这个命令用来应用由git diff或git show生成的补丁。这个命令仅将补丁的修改应用到工作目录中,而不会创建新的commit。如果你想将这些更改提交到你的仓库,你需要手动添加和提交这些更改。

git apply mypatch.patch

此命令将应用名为 mypatch.patch 的补丁文件的改动到当前的Git仓库。
注意: 生成的补丁文件是文本文件,你可以使用任何文本编辑器查看它们的内容。结构清晰的补丁文件即使是人也能够阅读并理解其中记录的代码变更

git am

这个命令主要用来应用由git format-patch生成的补丁文件。这个命令将每个补丁文件都应用成一次新的提交,并且自动采用补丁文件中的提交信息,包括作者信息、提交日期等。

git am mypatch.patch    # 应用补丁并自动创建新的提交

相关推荐

  1. git生成应用补丁

    2024-05-01 21:48:01       10 阅读
  2. Linux 根据提交记录生成补丁新旧文件对比

    2024-05-01 21:48:01       10 阅读
  3. git常用指令应用案例

    2024-05-01 21:48:01       42 阅读
  4. 制作和合入git补丁

    2024-05-01 21:48:01       10 阅读
  5. 【查漏补缺】Django模型字段类型应用

    2024-05-01 21:48:01       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-01 21:48:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-01 21:48:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-01 21:48:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-01 21:48:01       18 阅读

热门阅读

  1. ⑤ - 前端工程师通识指南

    2024-05-01 21:48:01       13 阅读
  2. 【python】给函数参数和返回值标注类型

    2024-05-01 21:48:01       11 阅读
  3. 日拱一卒,月进一步(10)

    2024-05-01 21:48:01       11 阅读
  4. PostgreSQL数据类型总结

    2024-05-01 21:48:01       8 阅读
  5. vue项目快速构建

    2024-05-01 21:48:01       9 阅读
  6. Unity编辑器扩展

    2024-05-01 21:48:01       9 阅读
  7. Postgresql从小白到高手 十:Linux服务器配置详解

    2024-05-01 21:48:01       10 阅读
  8. SQL中distinct的用法

    2024-05-01 21:48:01       8 阅读
  9. 情商测试的新浪潮:如何准确评估个人情商?

    2024-05-01 21:48:01       10 阅读
  10. SGP.31-10

    2024-05-01 21:48:01       8 阅读
  11. ES基础查询,term级参数介绍

    2024-05-01 21:48:01       10 阅读