Skip to content

Instantly share code, notes, and snippets.

@teologov
Forked from n00neimp0rtant/gist:9515611
Created December 28, 2017 15:48
Show Gist options
  • Save teologov/80db65e93ecdb2af4ff64dd88fa6667a to your computer and use it in GitHub Desktop.
Save teologov/80db65e93ecdb2af4ff64dd88fa6667a to your computer and use it in GitHub Desktop.
simple squash without rebase
## within current branch, squashes all commits that are ahead of master down into one
## useful if you merged with upstream in the middle of your commits (rebase could get very ugly if this is the case)
## commit any working changes on branch "mybranchname", then...
git checkout master
git checkout -b mybranchname_temp
git merge --squash mybranchname
git commit -am "Message describing all squashed commits"
git branch -m mybranchname mybranchname_unsquashed
git branch -m mybranchname
## optional, not recommended if you want to keep the unsquashed history around for a bit longer
git branch -D mybranchname_unsquashed
## if squashing already-pushed commits...
git push --force
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment