git - 在两个分支之间生成补丁格式
问题描述
我想知道如何在两个分支的最后一次提交之间生成格式补丁。
format-patch
我想获得与命令完全相同的格式。
我尝试了一个类似的命令,git diff b1..b2 -- > diff.patch
但它没有给出我想要的输出格式。
解决方案
我想获得与 format-patch 命令完全相同的格式。
你无法得到它,因为git format-patch
它的输出格式是格式化一个或多个现有提交的结果。两个分支提示之间的差异不是现有的提交。
如果你想要的不是完全相同的格式,而是大致相同的格式,你可以得到。这有多容易或多难取决于您希望生成的补丁有多近似。
请注意,输出git format-patch
由两部分组成:
- 表示提交元数据的文本部分;和
- 由 产生的差异
git diff
。
然后这两个部分得到一个邮箱样式的包装。标From
头使用提交哈希 ID,这意味着必须有一个生成差异的提交。Date: 和 Subject: 标头对一些提交元数据进行编码,其余部分则在差异上方的文本中。
第一部分是不可能精确复制的,因为不涉及提交(因此没有提交元数据)。第二部分是易于重现的部分:只需git diff
在有问题的两个提交上运行。
我尝试了一个类似的命令,
git diff b1..b2 -- > diff.patch
但它没有给出我想要的输出格式。
在这种情况下,你将不得不更明确地说明你愿意接受什么。第一部分你想要什么?您将在哪里获得它,因为没有单一的提交可以从中获得它?
推荐阅读
- sql - 在 ORACLE 中获取包含非英语语言的列
- encryption - 如何使用 cryptoJS 加密并使用 openssl 解密?
- java - 如何在一个类中创建一个 ArrayList,为什么这样?
- angular - 无法更改 Ag-grid 中的图标
- firebase - 具有多个 where 子句的集合组的 Cloud Firestore 索引
- python - 根据比较其他两个列表的结果更新列表
- editor - Shopware 6 将自定义类添加到文本编辑器中的标题标签
- javascript - 将纬度和经度值转换为地名并显示?
- azure - 如何通过 Graph API 从 MS Teams 中恢复通话记录信息
- angular - 如何使用从 HttpClient (Angular) 获得的数据进行排序创建 mat-table