git squash merge
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 checkout master
Switches to your master branch.
git merge --squash bugfix
Takes all commits from the bugfix branch and groups it for a 1 commit with your current branch.
(no merge commit appears; you could resolve conflicts manually before following commit)
Creates a single commit from the merged changes.
Omitting the -m parameter lets you modify a draft commit message containing every message from your squashed commits before finalizing your commit.