I have created a testing branch. It has a lot of tiny commits to build one feature.
At the end of it, I want to take the final completed changes, and put them into the maste
That --squash will put your working set in the state as if all the changes on testing-branch got merged in with master, but won't create any commits. You can then do git commit and all the changes will go in in a single commit.