Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Intellij - How to squash local branch only

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

like image 912
NikZ Avatar asked Jan 26 '16 16:01

NikZ


People also ask

How do I pull a specific branch in Git IntelliJ?

In the Branches popup, choose New Branch or right-click the current branch in the Branches pane of the Git tool window and choose New Branch from 'branch name'. In the dialog that opens, specify the branch name, and make sure the Checkout branch option is selected if you want to switch to that branch.


1 Answers

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

like image 100
Alim Özdemir Avatar answered Sep 20 '22 05:09

Alim Özdemir