git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git rebase --interactive squash/squish/fold/rollup

From
MMinty <mintywalker@gmail.com>
Date
Jun 17, 2009, 12:06 UTC
Message-ID
<e1868cfe0906170506o37a75c35m47f9456bf8ae47c1@mail.gmail.com>

I was wondering if there was a git rebase --interactive "squash" alternative, that instead of letting me edit and manually combine the commit messages from multiple commits that I want squashed together, instead simply used the first and folded the other commits into that?

I often find myself in the following pattern:

branch, hack, commit. hack, commit, hack, commit git rebase --interactive master squash later commits into an earlier one repeated [hack, commit]+, rebase, squash merge

At which point, 99% of the time I want to fold the later commits into an earlier commit, keep the commit message of the first and throw the remaining commit messages into /dev/null.

I understand this is just a matter of editting the commit messages, but I'm lazy and I find myself repeatadly dumbly deleting the latter commit messages again and again.

A $EDITOR macro/extension might address this, but it seems (to me) cleaner to extend the rebase command set:

< pick, edit, squash
> pick, edit, squash, fold

"fold" is perhaps the wrong word. "squish" is perhaps too similar. "rollup" maybe?

In any event, functionally it would do exactly the same as "squash", except rather than let you edit the commit messages it would instead simply use the commit message of the first commit. And throw the other commit messages away.

I'm not adverse at having a go at putting a patch together (although this is not my forte), but I thought I'd check there wasn't prior art or a good reason why this would be a "bad thing" to have?

Murray.
Next: John Tapsell
Message 1 of 40 in “git rebase --interactive squash/squish/fold/rollup”
  1. MintyJun 17, 2009
  2. John TapsellJun 17, 2009
  3. MintyJun 17, 2009
  4. Junio C HamanoJun 17, 2009
  5. John TapsellJun 17, 2009
  6. Paolo BonziniJun 17, 2009
  7. John KoleszarJun 17, 2009
  8. John TapsellJun 17, 2009
  9. Clemens BuchacherJun 17, 2009
  10. MintyJun 18, 2009
  11. rebase -i: auto-squash commitsNanako Shiraishi, Jun 17, 2009
  12. Johannes SchindelinJun 17, 2009
  13. Re: rebase -i: auto-squash commitsNicolas Sebrecht, Jun 18, 2009
  14. Junio C HamanoJun 18, 2009
  15. Johannes SchindelinJun 18, 2009
  16. Jakub NarebskiJun 18, 2009
  17. Junio C HamanoJun 18, 2009
  18. Johannes SchindelinJun 18, 2009
  19. Teemu LikonenJun 18, 2009
  20. Johannes SchindelinJun 18, 2009
  21. Teemu LikonenJun 18, 2009
  22. Johannes SchindelinJun 18, 2009
  23. Jakub NarebskiJun 18, 2009
  24. John KoleszarJun 18, 2009
  25. Junio C HamanoJun 18, 2009
  26. Johannes SchindelinJun 18, 2009
  27. Michael J GruberJun 18, 2009
  28. Miles BaderJun 19, 2009
  29. Re: rebase -i: auto-squash commitsNicolas Sebrecht, Jun 18, 2009
  30. Matthieu MoyJun 18, 2009
  31. Johannes SchindelinJun 18, 2009
  32. Matthieu MoyJun 18, 2009
  33. Re: rebase -i: auto-squash commitsNicolas Sebrecht, Jun 18, 2009
  34. Junio C HamanoJun 18, 2009
  35. rebase -i --autosquash: auto-squash commitsNanako Shiraishi, Jun 18, 2009
  36. Alex RiesenJun 18, 2009
  37. Wincent ColaiutaJun 19, 2009
  38. Nanako ShiraishiJun 20, 2009
  39. Michael HaggertyJun 18, 2009
  40. Junio C HamanoJun 18, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.