squash commits in branch code example

Example 1: squash commits in remote branch

$ git rebase -i HEAD~4

At the interactive screen that opens up, replace pick with squash at the top for all the commits that you want to squash.
Save and close the editor through esc --> :wq

$ git push origin branch-name --force

Example 2: squash commit history git

# THIS TURNS YOUR WHOLE COMMIT HISTORY INTO ONE SINGLE COMMIT!
# BE CAREFUL!

git rebase --root -i

# In your editor, for each commit except the top, change `pick` to `squash`

Example 3: squash commits on branch

git rebase -i HEAD~20

Example 4: squash commits in git

git reset --soft HEAD~3 &&
git commit