问题描述
我建议在一次性分支上执行此操作,如下所示。如果您的提交在“换行符”分支中并且您已经切换回“主”分支,那么这应该可以解决问题:
[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
解决方法
我在一个分支上有八个提交,我想通过电子邮件发送给一些还没有 git 开明的人。到目前为止,我所做的一切要么给了我 8
个补丁文件,要么从一开始就开始给我分支历史中每个提交的补丁文件。我使用 git rebase –interactive
来压缩提交,但现在我尝试的一切从一开始就给了我无数的补丁。我究竟做错了什么?
git format-patch master HEAD # yields zillions of patches,even though there's
# only one commit since master