Please explain squashing to me


I'm relatively new to SourceTree. I've used it for a few months now and the I feel I understand the basic functionalities and features, but there are other features I'm still trying to understand.

In this case, I'm trying to understand how squash works.

It seems I can only squash commits once they're pushed to the master repository, not before. Is this true?

Also, why can I only squash through the rebasing interface? Squashing isn't necessarily rebasing, is it? If I click on the oldest commit, and say "rebase children of...", I can then squash all later commits to that one. But then what happens once I say "OK"? Will it rebase my code to that oldest commit? WITH the later ones squashed into it (effectively meaning there should be no change)? And what if I say "cancel"? It seems to undo my squash. So I can't squash without rebasing.

Can someone please explain how this works? Thanks.

1 answer

Suggest an answer

Log in or Join to answer
Community showcase
Louis De Jaeger
Posted yesterday in Off-topic

Friday fun: your best joke

Hi all Lets make this Friday fun really fun and post one (or more) of your best jokes! The joke can be about an Atlassian product, or just a really fun joke you want to share! I’m not the best j...

71 views 2 2
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot