For original question:
Easiest way to do this would probably be to create a new orphan branch containing the contents of the old branch:
git checkout commit_c #Checkout latest commit on your branch
git checkout --orphan new_branch_name
git commit
Write some reasonable commit message to describe that this commit is a squash of the old branch. If it looks okay, you can now move your original branch pointer to this commit:
git branch -f original_branch_name
For updated question:
Seems like what you are looking for is a squash merge:
git checkout master
git merge --squash TAI-18
This will take all the changes introduced on TAI-18
branch, and create a commit on master branch which contains all those changes.
If the same files have been updated concurrently on master branch, there may be conflicts, and you will have to resolve those.