git format-patch でコミットを 1 つのパッチにまとめるにはどうすればよいでしょうか? 質問する

git format-patch でコミットを 1 つのパッチにまとめるにはどうすればよいでしょうか? 質問する

ブランチに 8 つのコミットがあり、まだ Git に精通していない人たちにメールで送りたいと思っています。これまでのところ、私が行うすべての操作で、8 つのパッチ ファイルが生成されるか、または、最初からブランチの履歴にあるすべてのコミットのパッチ ファイルが生成されます。コミットを圧縮するために git rebase --interactive を使用しましたが、今では、試すすべての操作で、最初から数え切れないほどのパッチが生成されます。何が間違っているのでしょうか?

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

ベストアンサー1

次のように、使い捨てブランチでこれを行うことをお勧めします。コミットが「newlines」ブランチにあり、すでに「master」ブランチに戻っている場合は、これでうまくいくはずです。

[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

おすすめ記事