I created a test branch to demonstrate this issue, https://bitbucket.org/wakefly_cbass/test/commits/all
I created an initial commit, 13b2c38 , and a second commit. 0b1f714, directly on master.
At this point, I switched back to 13b2c38 and created two branches off of it, Branch1 and Branch2.
I proceeded to do a third commit onto Branch1 (CreateBranch1.png), and a fourth onto Branch2 (CreateBranch2.png).
I then did a merge of Branch1, and then Branch2, into master.
In Bitbucket, this shows up cleanly - I've only committed one file to each branch, and when they merge only one branch is shown.
But in SourceTree, each merge shows an extraneous file not shown in BitBucket - Merging Branch 1 shows the second commit (0b1f714) as part of the merge, and Merging Branch 2 shows the file from Branch 1 as part of the merge. (MergeBranch1.png, MergeBranch2.png)
As a followup, after this, any merges involving these branches, will forever also show that file as part of the merge. (Branch2MergeAgain.png)
The issue persists, even if the repo is deleted entirely from SourceTree, and pulled again from Bitbucket,