【发布时间】:2014-12-11 06:48:55
【问题描述】:
我已经克隆了一个上游存储库,在上面启动了一个错误修复分支,并且花了很多时间摆弄它。由于我花了很多时间在分支上并对其进行了各种调试和微不足道的更改,因此我从最近的上游 master 分支了一个新分支,并到该分支,合并了我的实际的、最终确定的错误修复更改原始的错误修复分支,省略了杂乱无章的内容。
现在我想创建一个补丁,它只包含与最近上游主提交相关的更改。相关更改都在合并提交中,我将原始错误修复分支合并到新分支。
现在,当我跑步时
git format-patch master
master 指向我从其分支更新的修复分支的提交,它创建多个补丁文件,其中包含来自原始错误修复分支的提交。我只想要单一的、简洁的错误修复更改,就像我运行时得到的那样
git diff master
详细说明:问题不在于我获得了多个补丁文件。问题是这些补丁包含当前分支中不包含的各种调试更改等。
我应该怎么做才能创建一个合法的补丁?
【问题讨论】:
-
您通常不会尝试通过合并提交进行修复。你需要做 rebase,或者使用与合并提交相同的树创建新的提交,但只有一个父节点成为 master。
-
我明白了。阅读此内容后:atlassian.com/git/tutorials/rewriting-history/git-rebase 我明白为什么这比我当前的工作流程更好。如果你把它写成答案,我会接受。