git rebase -i HEAD~2
# Say your bug fix branch is called bugfix and you want to merge it into master
git checkout master
git merge --squash bugfix
git commit
# This will take all the commits from the bugfix branch,
# squash them into 1 commit,
# and merge it with your master branch.
git reset --soft HEAD~3 &&
git commit
# you are in a branch2 which has multiple commits which you want to combine into 1
and merge into branch1
git rebase <branch_to_merge_into> -i
pick and squash the commits you want
git rebase -i HEAD~2
# Say your bug fix branch is called bugfix and you want to merge it into master
git checkout master
git merge --squash bugfix
git commit
# This will take all the commits from the bugfix branch,
# squash them into 1 commit,
# and merge it with your master branch.
git reset --soft HEAD~3 &&
git commit
# you are in a branch2 which has multiple commits which you want to combine into 1
and merge into branch1
git rebase <branch_to_merge_into> -i
pick and squash the commits you want