squash commits and push 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 pushed commits
git rebase -i origin/master~4 master
git push origin +master