Intellij - How to squash local branch only

NikZ picture NikZ · Jan 26, 2016 · Viewed 13.7k times · Source

When using Git inside of Intellij, how do I squash all of my commits for a local branch? What settings do I use in the rebase branch window?

I've tried setting the Onto to local/master and From to my branch, but then it goes and tries to merge master changes into my branch for each commit I did, even tho I typically rebase my branch onto master every morning...so there SHOULD be no conflicts. Yet it almost always finds conflicts and causes merge issues. I ONLY want to squash the branch commits and messages so when I push to Github it only sees one.

enter image description here

Answer

Alim Özdemir picture Alim Özdemir · May 10, 2017

It might be a little uncomfortable but you can use the git notation of HEAD~ so in the "Onto" field you'd write the amount of commits you want to include like:

In this example I have 4 (the last 4) commits I want to combine into 1.

rebase interactive dialogue

In the opening dialog the entries are listed in order, so you need to squash all after the first one with the drop box. (I made the first a reword but that's not needed as there will be a message-change dialog for the squashing anyway, so it can be left on 'pick')

squashing

then just a new message for the combined commits and you're done.

commit message