Git - 为分支中的所有提交生成补丁

时间:2017-03-15 04:03:38

标签: git git-branch git-patch

如何只知道分支名称,如何为给定分支中的所有提交生成补丁?

此步骤是复杂工作流程的一部分,所有这些工作流程都是自动化的。因此,要求某人手动确定分支中的第一个提交不是一个选项。

请注意,依赖于reflog的任何内容都不是一个选项,因为分支中的更改不是在本地进行的。

2 个答案:

答案 0 :(得分:41)

如果你知道你的“给定分支”是从哪个分支创建的,那么making a patch is easy

git diff master Branch1 > ../patchfile
git checkout Branch2    
git apply ../patchfile

(您可以生成patch applicable without git too

但是找到分支的正确“创建提交”可能很复杂:请参阅“Finding a branch point with Git?

使用了OP akirekadu

git format-patch $(git merge-base --fork-point master)..branchB 

您可以在“git diff between working copy and branch base

中看到它的用法

答案 1 :(得分:0)

如果您已经提交并推送了您的更改,现在您要创建补丁文件。

即使您在该分支中有多个提交,这也会在 1 个文件中创建一个补丁

第 1 步: 像任何功能/错误分支一样签出您想要其补丁的分支
例如:git checkout <branch>

第 2 步: 现在这将为所有提交差异创建补丁,主分支与您的结帐分支,即您结帐的上述分支。

git format-patch master --stdout > mypatch.patch

相关问题