如何在没有一些中间添加的情况下从早期版本中获取diff?

时间:2011-09-16 17:59:12

标签: git diff patch

我正在努力增加一个项目,该项目松散地基于同一项目的另一个补丁。我首先克隆了存储库( A )。然后我将我想用的补丁作为“灵感”应用于我的补充( B )。我做了一个分支以准备我的更改( C ),然后添加新代码( D )。

A-----B
       \
        \
         C-----D

我希望我的新增功能与“灵感”补丁分开。我现在如何生成不包含“灵感”补丁(B或C)的补丁文件(即git diff)?这些补丁每个都基本上代表一个具有独特用例的插件,因此将每个补丁打包到项目中的过程将会有所不同。

2 个答案:

答案 0 :(得分:2)

您需要将更改重新定义为基于A而不是C

git rebase --onto A C

答案 1 :(得分:1)

如果 D 不依赖于 B C ,您应该只能从 C <生成补丁/ strong> - &gt; D 并获得您想要的内容:

git format-patch C..D