小编典典

你如何使用 git format-patch 将提交压缩到一个补丁中?

all

我在一个分支上有八个提交,我想通过电子邮件发送给一些还没有 git 开明的人。到目前为止,我所做的一切要么给了我 8
个补丁文件,要么从一开始就开始给我分支历史中每个提交的补丁文件。我使用 git rebase –interactive
来压缩提交,但现在我尝试的一切从一开始就给了我无数的补丁。我究竟做错了什么?

git format-patch master HEAD # yields zillions of patches, even though there's 
                             # only one commit since master

阅读 157

收藏
2022-08-19

共1个答案

小编典典

我建议在一次性分支上执行此操作,如下所示。如果您的提交在“换行符”分支中并且您已经切换回“主”分支,那么这应该可以解决问题:

[adam@mbp2600 example (master)]$ git checkout -b tmpsquash
Switched to a new branch "tmpsquash"

[adam@mbp2600 example (tmpsquash)]$ git merge --squash newlines
Updating 4d2de39..b6768b2
Fast forward
Squash commit -- not updating HEAD
 test.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

[adam@mbp2600 example (tmpsquash)]$ git commit -a -m "My squashed commits"
[tmpsquash]: created 75b0a89: "My squashed commits"
 1 files changed, 2 insertions(+), 0 deletions(-)

[adam@mbp2600 example (tmpsquash)]$ git format-patch master
0001-My-squashed-commits.patch
2022-08-19